我有一个动物园时间序列对象.在保留日期的同时,如何按值对其进行排序?
如果这是我的系列:
2013-10-02 2013-10-03 2013-10-04 2013-10-07 2013-10-08 2013-10-09
-0.02 0.00 0.00 0.04 0.00 0.02
Run Code Online (Sandbox Code Playgroud)
结果应该是:
2013-10-02 2013-10-03 2013-10-04 2013-10-08 2013-10-09 2013-10-07
-0.02 0 0 0 0.02 0.04
Run Code Online (Sandbox Code Playgroud)
普通sort按日期(而非值)对zoo对象进行排序.zoo对象(日期,1个值系列)具有暗淡的NULL,因此无法指定我想要按第二列排序.
在数据框中使用数据并转换为"zoo"对象:
df <- data.frame(Dates = as.Date(c("2013-10-02", "2013-10-03", "2013-10-04",
"2013-10-07", "2013-10-08", "2013-10-09")),
Values = c(-0.02, 0.00, 0.00, 0.04, 0.00, 0.02))
library("zoo")
zdf <- zoo(df$Values, df$Dates)
Run Code Online (Sandbox Code Playgroud)
虽然@Joshua是正确的,但您始终可以转换回数据框表示并对其进行排序,您只需要处理通过该过程保存日期.例如:
df2 <- as.data.frame(zdf)
df2 <- transform(df2, Dates = as.Date(rownames(df2)))
Run Code Online (Sandbox Code Playgroud)
现在排序 df2
df2[order(df2$zdf), ]
R> df2[order(df2$zdf), ]
zdf Dates
2013-10-02 -0.02 2013-10-02
2013-10-03 0.00 2013-10-03
2013-10-04 0.00 2013-10-04
2013-10-08 0.00 2013-10-08
2013-10-09 0.02 2013-10-09
2013-10-07 0.04 2013-10-07
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1662 次 |
| 最近记录: |