我认为您的问题来自您操作数据框的方式,可以发布更多详细信息吗?
我想我有一个解决办法。
我使用的数据框:
> df1
$data
value
1 1.9150
2 3.1025
3 6.7400
4 8.5025
5 11.0025
6 9.8025
7 9.0775
8 7.0900
9 6.8525
10 7.4900
$date
%Y-%m-%d
1 1974-01-01
2 1974-01-02
3 1974-01-03
4 1974-01-04
5 1974-01-05
6 1974-01-06
7 1974-01-07
8 1974-01-08
9 1974-01-09
10 1974-01-10
> class(df1$data$value)
[1] "numeric"
> class(df1$date$`%Y-%m-%d`)
[1] "POSIXct" "POSIXt"
然后我可以通过调用 zoo 来创建时间序列:
> Z<-zoo(df1$data,order.by=(as.POSIXct(df1$date$`%Y-%m-%d`)))
> Z
value
1974-01-01 1.9150
1974-01-02 3.1025
1974-01-03 6.7400
1974-01-04 8.5025
1974-01-05 11.0025
1974-01-06 9.8025
1974-01-07 9.0775
1974-01-08 7.0900
1974-01-09 6.8525
1974-01-10 7.4900
这里重要的是我使用df1$date$%Y-%m-%d 而不仅仅是
df1$date
事实上,如果我按照你的方式尝试,我也会得到 NA 值:
> Z<-zoo(df1$data,order.by=as.POSIXct(as.Date(as.character(df1$date),format("%Y-%m-%d"))))
> Z
value
<NA> 1.915
要获取 data$txn_date 的名称,您可以使用以下命令:names(data$txn_date) 并使用您的数据框和名称尝试我的解决方案。
> names(df1$date)
[1] "%Y-%m-%d"