我尝试使用润滑包和as.Date()
,但都显示错误:
# the factor
> x
[1] '2011-05-05:16:30:04.466 '
873 Levels: '2011-05-05:16:30:04.466 ' ... '2017-08-10:20:05:51.406967'
# try 1
> as.Date(x, format = "%m/%d/%Y")
[1] NA
# try 2
> xx <- mdy(x)
Warning message:
All formats failed to parse. No formats found.
> xx
[1] NA
> xx <- mdy_hms(x)
Warning message:
All formats failed to parse. No formats found.
有人可以帮帮我吗?
答案 0 :(得分:1)
要添加Jason Clark的其他答案,还有as.POSIXct
,如果你想保持时间。
getOption("digits.secs")
#NULL
options(digits.secs = 6)
x <- factor('2011-05-05:16:30:04.466')
y <- as.POSIXct(x, format = "%Y-%m-%d:%H:%M:%OS")
y
#[1] "2011-05-05 16:30:04.466 BST"
class(y)
#[1] "POSIXct" "POSIXt"
答案 1 :(得分:0)
看起来您的问题可能是格式。 as.Date中的默认格式是“%Y-%m-%d”,它似乎照顾了这个例子。
> as.Date(as.factor('2011-05-05:16:30:04.466 '), format = "%m/%d/%Y")
[1] NA
> as.Date(as.factor('2011-05-05:16:30:04.466 '))
[1] "2011-05-05"
> as.Date(as.factor('2011-05-05:16:30:04.466 '), format = "%Y-%m-%d")
[1] "2011-05-05"