【发布时间】:2011-05-17 15:44:30
【问题描述】:
我有一个包含日期时间字符列的数据框。
当我使用as.Date 时,我的大部分字符串都被正确解析,除了少数情况。下面的示例有望向您展示发生了什么。
# my attempt to parse the string to Date -- uses the stringr package
prods.all$Date2 <- as.Date(str_sub(prods.all$Date, 1,
str_locate(prods.all$Date, " ")[1]-1),
"%m/%d/%Y")
# grab two rows to highlight my issue
temp <- prods.all[c(1925:1926), c(1,8)]
temp
# Date Date2
# 1925 10/9/2009 0:00:00 2009-10-09
# 1926 10/15/2009 0:00:00 0200-10-15
如您所见,某些日期的年份不准确。当日期为两位数时,似乎会出现这种模式。
您能提供的任何帮助将不胜感激。
【问题讨论】:
-
您获得无效 0200 日期的原因是当天的字符长度不同(15 月 15 日为两位,10 月 9 日为一位)-您的字符串替换代码不是考虑到这一点。无论如何,您可以直接将 as.Date 或 strptime 与格式参数一起使用,而无需进一步处理字符。
标签: r date lubridate as.date r-faq