【发布时间】:2017-02-16 00:33:39
【问题描述】:
这对于资深 R 程序员来说应该是相当简单的,但我似乎无法在网上找到解决方案。
我正在尝试将 xts 对象 sym.rank 中的列绑定到第二个现有对象 A 的末尾,但结果会增加行数。 sym.rank 中的数据本质上是向下移动的,而不是与 A 中的数据正确对齐。
> str(A)
An ‘xts’ object on 2005-01-31/2012-12-31 containing:
Data: num [1:96, 1:6] 35.5 33.8 33.6 33.3 31.9 ...
-attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:6] "XLY.Open" "XLY.High" "XLY.Low" "XLY.Close" ...
Indexed by objects of class: [Date] TZ: UTC
xts Attributes:
List of 2
$ src : chr "yahoo"
$ updated: POSIXct[1:1], format: "2017-01-27 00:42:13"
> str(sym.rank)
An ‘xts’ object on 2005-01-31/2012-12-31 containing:
Data: num [1:96, 1:5] NA NA 5 5 4 2 2 3 5 5 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr
[1:5] "XLY.Adjusted" "XLP.Adjusted" "XLE.Adjusted" "AGG.Adjusted" ...
Indexed by objects of class: [POSIXct,POSIXt] TZ:
xts Attributes:
NULL
>sym.rank
XLY.Adjusted XLP.Adjusted XLE.Adjusted AGG.Adjusted IVV.Adjusted
2005-01-31 NA NA NA NA NA
2005-02-28 NA NA NA NA NA
2005-03-31 5 3 1 4 2
2005-04-30 5 2 4 1 3
2005-05-31 4 3 5 1 2
2005-06-30 2 5 1 4 3
> A
XLY.Open XLY.High XLY.Low XLY.Close XLY.Volume XLY.Adjusted
2005-01-31 35.45 35.55 33.23 33.78 5464600 28.49650
2005-02-28 33.82 34.36 33.33 33.60 5813500 28.34465
2005-03-31 33.60 34.40 32.71 33.16 10675600 28.01342
2005-04-30 33.30 33.47 30.62 31.05 12504000 26.23090
2005-05-31 31.92 33.18 31.04 32.97 9032100 27.85291
2005-06-30 33.10 33.88 32.68 32.78 7248700 27.73284
> cbind(A,sym.rank[,1])
XLY.Open XLY.High XLY.Low XLY.Close XLY.Volume XLY.Adjusted XLY.Adjusted.1
2005-01-30 NA NA NA NA NA NA NA
2005-01-31 35.45 35.55 33.23 33.78 5464600 28.49650 NA
2005-02-27 NA NA NA NA NA NA NA
2005-02-28 33.82 34.36 33.33 33.60 5813500 28.34465 NA
2005-03-30 NA NA NA NA NA NA 5
2005-03-31 33.60 34.40 32.71 33.16 10675600 28.01342 NA
如您所见,cbind 命令的结果引入了不需要的行,而来自sym.rank 的实际值被引入了不需要的行中。
任何帮助将不胜感激。
【问题讨论】:
-
我的错,找到了解决方案。添加以下内容可以解决问题: ttz
-
如果您不提供 tz 属性,您将获得当前时区。
-
谢谢,非常感谢!