R将不规则字符转换为日期

时间:2013-07-16 21:20:18

标签: r

我是R新手!我试图将不规则字符转换为日期,同时减少时间,但继续获得NA,例如:

test = as.POSIXct(strptime("6/2/2013 10:27","10/21/2013 3:04"),format="%m/%d/%Y %H:%M")

4 个答案:

答案 0 :(得分:0)

你试过了吗?

R> as.Date(c("6/2/2013", "10/21/2013"), format="%m/%d/%Y")
[1] "2013-06-02" "2013-10-21"

R> as.POSIXct(c("6/2/2013", "10/21/2013"), format="%m/%d/%Y")
[1] "2013-06-02 IST" "2013-10-21 IST"

答案 1 :(得分:0)

我不确定strptime应该做什么,但如果你只是用c()替换它,那么你的函数运行正常。它也适用于as.Date

test = as.POSIXct(c("6/2/2013 10:27","10/21/2013 3:04"),format="%m/%d/%Y %H:%M")
test = as.Date(c("6/2/2013 10:27","10/21/2013 3:04"),format="%m/%d/%Y %H:%M")

答案 2 :(得分:0)

如果您开始处理R中的日期,我建议您尝试lubridate包,这样可以简化这种操作。

require(lubridate)
date_string <- c("6/2/2013", "10/21/2013")
mdy(date_string)
[1] "2013-06-02 UTC" "2013-10-21 UTC"

例如,在此处,在函数mdy中,m代表月份,d代表日期,y代表年份,所有其他函数都是直观的。< / p>

检查小插图以更好地了解其可能性

vignette("lubridate", package = "lubridate")

答案 3 :(得分:0)

尝试as.Date(“6/2/2013”​​,格式=“%m /%d /%Y”)。但请注意,即使你的“不规则”角色是“6/2 / 2013abcd”,你也会得到相同的结果