我在一个XTSř对象三个矢量。称他们为V1,V2,V3。合并后,它们的顺序从左到右依次是V2,V3,V1。我如何重新安排他们,使他们读(从左至右)为V1,V2,V3?

有帮助吗?

解决方案

可以只是参考列和重新分配它们:

 x <- x[,c(2,3,1)]

这里的一个工作示例:

> data(sample_matrix)
> x <- head(as.xts(sample_matrix, descr='my new xts object'))[,c(1,2,3)]
> x
               Open     High      Low
2007-01-02 50.03978 50.11778 49.95041
2007-01-03 50.23050 50.42188 50.23050
2007-01-04 50.42096 50.42096 50.26414
2007-01-05 50.37347 50.37347 50.22103
2007-01-06 50.24433 50.24433 50.11121
2007-01-07 50.13211 50.21561 49.99185
> x <- x[,c(2,3,1)]
> x
               High      Low     Open
2007-01-02 50.11778 49.95041 50.03978
2007-01-03 50.42188 50.23050 50.23050
2007-01-04 50.42096 50.26414 50.42096
2007-01-05 50.37347 50.22103 50.37347
2007-01-06 50.24433 50.11121 50.24433
2007-01-07 50.21561 49.99185 50.13211

其他提示

值得一提的是,虽然你的的能够通过名称来引用列,生成新的对象和列,ALA

xts.object$V1plusV2 <- xts.object[, "V1"] + xts.object[, V2"] ,

您无法通过名称重新排序的列。以下是不允许

xts.reordered <- xts.object[, c("V3, V2, V1")] .

相反,如沙恩指出的那样,就需要通过数字引用的列。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top