【发布时间】:2022-01-07 23:37:36
【问题描述】:
我有一个包含日期和数据的大型数据框。在每个奇数列中,我都有日期,每隔一列有相应的股票价格。我想将每个列对转换为一个单独的 xts 对象。数据框如下所示:
...1 Stock Price
2021-11-09 72.5
2021-11-10 73.4
2021-11-15 72.9
etc etc
当我调用以下行时,它工作正常:
xts(df[,2],order.by=df$...1)
但是我想在循环中使用它,所以我宁愿使用
xts(df[,2],order.by=df[,1]),
但这会导致错误。 order.by 需要一个适当的基于时间的对象。
当我尝试这个时:xts(df[,2],order.by=as.Date(df[,1])) 会弹出不知道如何将“x”转换为“日期”类。我不明白,因为最初的第一列是 posixct 格式。
有人可以建议我一个解决方案吗?
谢谢
【问题讨论】:
-
您的最后一行代码应该可以工作,除非 df[, 1] 不是 Posixct 列。先检查一下。否则,将您的一些数据添加到问题中。大量使用
dput(your_df[10, 1:6])。此代码将输出 data.frame 的前 10 行和 6 列,您可以将其复制粘贴到您的问题中。 -
dput(al[10,1:4]) structure(list(...1 = structure(790214400, tzone = "UTC", class= c("POSIXct", "POSIXt") ),
BF/B UN Equity= 1.7299, ...3 = 结构(790214400, tzone = "UTC", class= c("POSIXct", "POSIXt")),UN UN Equity= 4.3911), row.names = c( NA, -1L), class= c("tbl_df", "tbl", "data.frame")) -
是的 df[,1] 是 Posixct 列