On May 8, 2011, at 3:07 PM, Russ Abbott wrote:

I'm having troubles with the names of columns.

quantmod deal with stock quotes.  I've created an array of the first 5
closing prices from Jan 2007. (Is there a problem that the name is the same
as the variable name? There shouldn't be.)

close

            close

2007-01-03 1416.60

2007-01-04 1418.34

2007-01-05 1409.71

2007-01-08 1412.84

2007-01-09 1412.11


When I try to create a more complex array by adding columns, the names get
fouled up.  Here's a simple example.

cbind(changed.close = close+1, zero = 0, close)

I suspect that you are actually using xts objects that you are incorrectly calling 'array's. If something is puzzling about the behavior of an R object the first thing to do is see what you are really dealing with so ... str(object)

If you load the xts package and type ?cbind.xts , you get a help page for merge.xts.

(In base R I do not know of a way to assign columns the way you propose within a `merge` call.)

Here is the code for cbind.xts:

> cbind.xts
function (..., all = TRUE, fill = NA, suffixes = NULL)
{
    merge.xts(..., all = all, fill = fill, suffixes = suffixes)
}
<environment: namespace:xts>




            close zero close.1

2007-01-03 1417.60    0 1416.60

2007-01-04 1419.34    0 1418.34

2007-01-05 1410.71    0 1409.71

2007-01-08 1413.84    0 1412.84

2007-01-09 1413.11    0 1412.11


The first column should be called "changed.close", but it's called "close". The second column has the right name. The third column should be called "close" but it's called "close.1". Why is that? Am I missing something?

If I change the order of the columns and let close have its original name,
there is still a problem.

cbind(close, zero = 0, changed.close = close+1)

            close zero close.1

2007-01-03 1416.60    0 1417.60

2007-01-04 1418.34    0 1419.34

2007-01-05 1409.71    0 1410.71

2007-01-08 1412.84    0 1413.84

2007-01-09 1412.11    0 1413.11


Now the names on the first two columns are ok, but the third column is still wrong. Again, why is that? Apparently it's not letting me assign a name to a column that comes from something that already has a name. Is that the way
it should be?

I don't get that same problem on a simpler example.

IX <- cbind(I=0, X=(1:3))

IX

    I X

[1,] 0 1

[2,] 0 2

[3,] 0 3

cbind(Y = 1, Z = IX[, "I"], W = IX[, "X"])

    Y Z W

[1,] 1 0 1

[2,] 1 0 2

[3,] 1 0 3


Is this a peculiarity to xts objects?

Thanks.

*-- Russ *
*
*
P.S. Once again I feel frustrated because it's taken me far more time than it deserves to track down and characterize this problem. I can fix it by
using the names function. But I shouldn't have to do that.

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

David Winsemius, MD
West Hartford, CT

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to