【发布时间】:2023-03-17 14:28:01
【问题描述】:
我有一个大型数据框,其中有一列日期和时间采用 iso8601 格式 (YYYY/MM/DDTHH:MM:SSz)。我正在尝试添加一个新列并更改时区。我正在使用的代码行如下。
df <-cbind(as.POSIXct(df$DateTime, tz = "America/Chicago","%Y-%m-%d %H:%M:%S"),df)
当我使用此代码时,我的新列只会给我“NA”值。我做错了什么?
编辑:这是我调用它时数据框中的前 5 个条目:
df$DateTime[1:5]
输出是
df$DateTime[1:5]
[1] "2018/06/01T05:01:13z" "2018/06/01T05:04:11z" "2018/06/01T05:05:31z" "2018/06/01T05:06:51z" "2018/06/01T05:08:11z"
现在,当我按照建议使用 strptime 时,我的下一行看起来像
df1<-as.data.frame(c(strptime(df$DateTime,format='%Y/%m/%dT%H:%M:%S',tz="America/Chicago"),df))
我得到了这个错误
Error in as.POSIXct.default(X[[i]], ...) :
do not know how to convert 'X[[i]]' to class “POSIXct”
【问题讨论】:
-
strptime(df$DateTime,'%Y/%m/%dT%H:%M:%S') -
如果您需要更好的帮助,请提供示例日期,
df$DateTime没有它就没有任何意义。