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.