从csv文件中查找R中的日期以来的日期

时间:2011-03-10 14:46:43

标签: datetime r date csv statistics

我正在处理从csv文件引入的日期因素(dateframe $ LastDate),并希望计算从今天起的日期。缺少值是常态,日期填充约1000行的20%。

这就是我到目前为止所给出的自1970年以来的天数因素。做一件简单的事情感觉做了很多工作,所以我确定我已经离开了某个地方。

NumberOfDays <- ifelse(!is.na(LastDate), Sys.Date()-LastDate, as.numeric(""))

2 个答案:

答案 0 :(得分:2)

您需要确保LastDate最初是日期格式。我并不认为as.numeric在这里是必需的。


LastDate = as.Date(c("2011-01-01", "2011-02-01", NA, "2011-03-01"))
NumberOfDays = as.numeric(Sys.Date() - LastDate)

如果您希望NA为零,请使用


NumberOfDays[is.na(NumberOfDays)] = 0

答案 1 :(得分:1)

确保您的LastDate字段已格式化并在R中显示为日期。您可以使用以下代码执行此操作:

df$LastDate <- as.Date(paste(df$LastDate), "%y%m%d")

请注意,在这种情况下,LastDate字段为“yymmdd”格式,此代码可能会根据您的数据而改变。

正确格式化后,可以使用plyr创建一个新变量:

df <- ddply(df, .(eventID), transform, NumberOfDays = Sys.Date() - LastDate)

在这种情况下,您可以使用唯一标识行的eventID。如果您有多个标识符,则可以用逗号分隔它们。

希望这有帮助!