转换为 posixct 失败
converting to posixct fails
> resulttable[3,1]
UTC FORECAST TIME
1: 2018-05-01 00:30:00
> as.POSIXct(resulttable[3,1],format="%Y-%m-%d %H:%M:%S",tz="UTC")
Error in as.POSIXct.default(resulttable[3, 1], format = "%Y-%m-%d %H:%M:%S", :
do not know how to convert 'resulttable[3, 1]' to class “POSIXct”
没看懂报错,因为resulttable第一列格式为posixct
> lapply(resulttable,class)
$`UTC FORECAST TIME`
[1] "POSIXct" "POSIXt"
$`UTC FORECAST RECEIVE TIME`
[1] "POSIXct" "POSIXt"
为什么 as.POSIXct(resulttable[3,1],format="%Y-%m-%d %H:%M:%S",tz="UTC")
会导致错误?
编辑:这里是 str 的输出:
> str(resulttable[3,1])
Classes ‘data.table’ and 'data.frame': 1 obs. of 1 variable:
$ UTC FORECAST TIME: POSIXct, format: "2018-05-01 00:30:00"
- attr(*, ".internal.selfref")=<externalptr>
注意 str(resulttable[3,1])
的输出。它说它是 类 data.table
和 data.frame
的对象。因此,您必须使用标准提取运算符提取要转换为 POSIXct
的一个或多个列。
resulttable[3, 1][[1]] # a vector
resulttable[3, 1]$`UTC FORECAST TIME` # the same vector
请注意,列名称 UTC FORECAST TIME
中有空格,因此您需要将其放在反引号之间。
然后,为了进行转换,您可以使用上述任何一种形式。
as.POSIXct(resulttable[3,1][[1]], format = "%Y-%m-%d %H:%M:%S", tz = "UTC")
as.POSIXct(resulttable[3,1]$`UTC FORECAST TIME`, format = "%Y-%m-%d %H:%M:%S", tz = "UTC")
> resulttable[3,1]
UTC FORECAST TIME
1: 2018-05-01 00:30:00
> as.POSIXct(resulttable[3,1],format="%Y-%m-%d %H:%M:%S",tz="UTC")
Error in as.POSIXct.default(resulttable[3, 1], format = "%Y-%m-%d %H:%M:%S", :
do not know how to convert 'resulttable[3, 1]' to class “POSIXct”
没看懂报错,因为resulttable第一列格式为posixct
> lapply(resulttable,class)
$`UTC FORECAST TIME`
[1] "POSIXct" "POSIXt"
$`UTC FORECAST RECEIVE TIME`
[1] "POSIXct" "POSIXt"
为什么 as.POSIXct(resulttable[3,1],format="%Y-%m-%d %H:%M:%S",tz="UTC")
会导致错误?
编辑:这里是 str 的输出:
> str(resulttable[3,1])
Classes ‘data.table’ and 'data.frame': 1 obs. of 1 variable:
$ UTC FORECAST TIME: POSIXct, format: "2018-05-01 00:30:00"
- attr(*, ".internal.selfref")=<externalptr>
注意 str(resulttable[3,1])
的输出。它说它是 类 data.table
和 data.frame
的对象。因此,您必须使用标准提取运算符提取要转换为 POSIXct
的一个或多个列。
resulttable[3, 1][[1]] # a vector
resulttable[3, 1]$`UTC FORECAST TIME` # the same vector
请注意,列名称 UTC FORECAST TIME
中有空格,因此您需要将其放在反引号之间。
然后,为了进行转换,您可以使用上述任何一种形式。
as.POSIXct(resulttable[3,1][[1]], format = "%Y-%m-%d %H:%M:%S", tz = "UTC")
as.POSIXct(resulttable[3,1]$`UTC FORECAST TIME`, format = "%Y-%m-%d %H:%M:%S", tz = "UTC")