提问人:Robert Hadow 提问时间:1/5/2019 更新时间:1/5/2019 访问量:165
使用 DataFrame 时 Strptime 失败
Strptime fails when working with a dataframe
问:
在这种情况下,Strptime 似乎缺少一些东西:
aDateInPOSIXct <- strptime("2018-12-31", format = "%Y-%m-%d")
someText <- "asdf"
df <- data.frame(aDateInPOSIXct, someText, stringsAsFactors = FALSE)
bDateInPOSIXct <- strptime("2019-01-01", format = "%Y-%m-%d")
df[1,1] <- bDateInPOSIXct
将 bDate 分配给数据帧失败,并显示:
as 中的错误。POSIXct.numeric(value) : 'origin' 必须提供
并警告:
提供了 11 个变量来替换 1 个变量
我想同时使用 POSIXct 日期和 POSIXct 日期时间来比较这个和那个。这比操作字符串的工作量要少得多,而且 POSIX 可以解决时区问题。不幸的是,我错过了一些东西。
答:
0赞
Tim Biegeleisen
1/5/2019
#1
您只需要将调用转换为显式:strptime
POSIXct
aDateInPOSIXct <- as.POSIXct(strptime("2018-12-31", format = "%Y-%m-%d"))
someText <- "asdf"
df <- data.frame(aDateInPOSIXct, someText, stringsAsFactors = FALSE)
bDateInPOSIXct <- as.POSIXct(strptime("2019-01-01", format = "%Y-%m-%d"))
df[1,1] <- bDateInPOSIXct
查看 R 文档,其中指出:
字符输入首先通过 strptime 转换为类“POSIXlt”:数字输入首先转换为“POSIXct”。
评论
0赞
Robert Hadow
1/5/2019
看在天堂的份上!我依赖于 strptime 的文档,其中说,“strptime 将字符表示转换为类”POSIXlt“的对象。我不知道转换需要捎带两个功能。非常感谢你,蒂姆。
0赞
Robert Hadow
1/5/2019
是的,它工作正常。str(df) 没有明显的差异,所以这些知识对我很有帮助。
评论