Thanks Jeff. That solves my problem. It is probably still much more
efficient than copying the entire xts structure. It still surprises me that
R would not have this built in since xts columns are surely implemented
using arrays. Isn't that the case? Of course, why would anybody know this
unless they were part of the team who developed R.

Regarding terminology: terminology is strongly a function of the scientific
discipline one is working in: for me it is mathematics, computational
science, computer graphics, and fluid dynamics. Most definitively not
finance :-)

Thanks for your patience with me.

       Gordon

On Mon, Apr 30, 2012 at 4:32 PM, Jeffrey Ryan <jeff.a.ryan@gmail.com> wrote:

> Terminology is confusing in your posts, but I think this is what you want:
>
> > AAPL['2007-01-10', which.i=TRUE]
> [1] 6
>
> Basically will get you the index position, without the subset (and
> copies).  Of course the index itself is new to R, so it involved a Malloc
> within... But I am sure you are expecting that.
>
>
> W.r.t to subsetting without copying... You want something more like a
> 'view', which isn't supported.
>
> Jeff
>
> On 4/30/12 3:15 PM, "Gordon Erlebacher" <gordon.erlebach@gmail.com> wrote:
>
> >Thanks Joshua. I'll be clearer. By index into an array, I mean "array
> >index".
> >
> >> library("quantmod")
> >> getSymbols("AAPL")
> >> head(AAPL)
> >           AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume
> >AAPL.Adjusted
> >2007-01-03     86.29     86.58    81.90      83.80    44225700
> >83.80
> >2007-01-04     84.05     85.95    83.82      85.66    30259300
> >85.66
> >2007-01-05     85.77     86.20    84.40      85.05    29812200
> >85.05
> >2007-01-08     85.96     86.53    85.28      85.47    28468100
> >85.47
> >2007-01-09     86.45     92.98    85.15      92.57   119617800
> >92.57
> >2007-01-10     94.75     97.80    93.45      97.00   105460000
> >97.00
> >
> >
> >The array index that corresponds to the data '2007-01-03' is 1. The index
> >that corresponds to index '2007-01-10' is 6.
> >
> >So one solution to my problem is:
> >
> >> AAPL <- cbind(AAPL, index=1:length(AAPL[,1]))
> >
> >>  idx <- function(x, date) { return(x[date]$index) }
> >
> >> idx(AAPL, '2007-01-10')
> >           index
> >2007-01-10     6
> >
> >
> >
> >************
> >
> >To accomplish this required a cbind, where I added a column. Doesn't this
> >construct a new data.frame with an additional column?
> >
> >I would have assumed the existence of a function in R to accomplish this.
> >After all, a data frame is a list of columns, each column is a vector,
> >which is indexed. We are not dealing with hash tables.
> >
> >******************************
> >
> >thanks!
> >
> >     Gordon
> >
> >
> >
> >
> >
> >PROBLEM:
> >
> >
> >> I have a xts object. Given a date, how do I get the index into the
> >>>> >> > array?
> >>>> >> > Is there a pre-written function?
> >
> >
> >
> >
> >
> >On Mon, Apr 30, 2012 at 3:56 PM, Joshua Ulrich
> ><josh.m.ulrich@gmail.com>wrote:
> >
> >> You are confusing many things.
> >>
> >> 1) You asked how to add an element to the middle of a sorted array
> >> (the index of an xts object), not how to add a column to a data.frame.
> >> 2) xts objects are not related to data.frames at all.
> >> 3) As I explained in my previous email, the index on xts/zoo objects
> >> is an *attribute* of the object not a column in the underlying matrix.
> >>
> >> Perhaps we're speaking past each other a bit.  So I'll reiterate what
> >> I said in my initial response to this thread: "An example would help."
> >>
> >>
> >> On Mon, Apr 30, 2012 at 2:46 PM, Gordon Erlebacher
> >> <gordon.erlebach@gmail.com> wrote:
> >> > Adding a column to a data frame can be done without copying in several
> >> > languages, since all one needs is to maintain a list of pointers to
> >>the
> >> > columns. You suggested I add a column of integers (the indices),
> >>which is
> >> > the logical approach, but for very large data frames, it is a waste of
> >> > memory and time. However, it works.
> >> >
> >> >     Gordon
> >> >
> >> >
> >> > On Mon, Apr 30, 2012 at 3:45 PM, Gordon Erlebacher
> >> > <gordon.erlebach@gmail.com> wrote:
> >> >>
> >> >> Hi Jeff,
> >> >>
> >> >> You cannot insert an element within an array without copying. But
> >>let us
> >> >> do something simpler:
> >> >>
> >> >> df = data.frame(a=1:10, b=101:110)
> >> >>
> >> >> a = df[5:10]
> >> >>
> >> >> This can be done without copying in several languages. Not R (as far
> >>as
> >> I
> >> >> know). In R, almost everything is done without copying, even when
> >> copying is
> >> >> not really required. On the other hand, R has many nice properties.
> >> >>
> >> >>      Gordon
> >> >>
> >> >>
> >> >>
> >> >> On Mon, Apr 30, 2012 at 3:43 PM, Joshua Ulrich
> >><josh.m.ulrich@gmail.com
> >> >
> >> >> wrote:
> >> >>>
> >> >>> Please reply to the list, so others can benefit.
> >> >>>
> >> >>> On Mon, Apr 30, 2012 at 1:07 PM, Gordon Erlebacher
> >> >>> <gordon.erlebach@gmail.com> wrote:
> >> >>> > Yes, I have used that technique. Do not like it because the cya
> >> >>> > structure
> >> >>> > must be copied, inefficient. I try to minimize copies. It is
> >>obvious
> >> to
> >> >>> > me
> >> >>> > that r maintains this index column, internally perhaps. I will
> >>adopt
> >> >>> > your
> >> >>> > approach then. Thanks.   Gordon.
> >> >>> >
> >> >>> Can you explain how would it be possible to insert a new element
> >>into
> >> >>> a sorted array without copying?  It's not clear to me how you could
> >>do
> >> >>> this in any language.
> >> >>>
> >> >>> The index in xts/zoo objects is an attribute attached to an
> >>underlying
> >> >>> matrix object.  It is not possible for the index to have a different
> >> >>> number of elements than rows in the underlying matrix.
> >> >>>
> >> >>> > On Apr 30, 2012 1:42 PM, "Joshua Ulrich" <josh.m.ulrich@gmail.com
> >
> >> >>> > wrote:
> >> >>> >>
> >> >>> >> It's not clear to me what you're trying to do.  An example would
> >> help.
> >> >>> >>
> >> >>> >> My guess is that you're looking for something like this:
> >> >>> >> x <- xts(1:10, Sys.Date()-10:1)
> >> >>> >> rbind(x, xts(NA_integer_,Sys.Date()-11))
> >> >>> >>
> >> >>> >> Best,
> >> >>> >> --
> >> >>> >> Joshua Ulrich  |  FOSS Trading: www.fosstrading.com
> >> >>> >>
> >> >>> >> R/Finance 2012: Applied Finance with R
> >> >>> >> www.RinFinance.com
> >> >>> >>
> >> >>> >>
> >> >>> >> On Mon, Apr 30, 2012 at 12:38 PM, Gordon Erlebacher
> >> >>> >> <gordon.erlebach@gmail.com> wrote:
> >> >>> >> > Hi,
> >> >>> >> >
> >> >>> >> > I have a xts object. Given a date, how do I get the index into
> >>the
> >> >>> >> > array?
> >> >>> >> > Is there a pre-written function?
> >> >>> >> >
> >> >>> >> > Thanks,
> >> >>> >> >
> >> >>> >> >  Gordon
> >> >>> >> >
> >> >>> >> >        [[alternative HTML version deleted]]
> >> >>> >> >
> >> >>> >> > _______________________________________________
> >> >>> >> > R-SIG-Finance@r-project.org mailing list
> >> >>> >> > https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> >> >>> >> > -- Subscriber-posting only. If you want to post, subscribe
> >>first.
> >> >>> >> > -- Also note that this is not the r-help list where general R
> >> >>> >> > questions
> >> >>> >> > should go.
> >> >>
> >> >>
> >> >
> >>
> >
> >       [[alternative HTML version deleted]]
> >
> >_______________________________________________
> >R-SIG-Finance@r-project.org mailing list
> >https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> >-- Subscriber-posting only. If you want to post, subscribe first.
> >-- Also note that this is not the r-help list where general R questions
> >should go.
>
>
>

	[[alternative HTML version deleted]]

