从 csv 文件中查找 R 中自日期以来的天数
我正在使用从 csv 文件引入的日期因子 (dateframe$LastDate),并希望计算从今天开始的天数。缺失值是常态,日期填充大约 1000 行的 20%。
这是我到目前为止所拥有的,这让我回到了 1970 年以来的日子。感觉做一件简单的事情需要做很多工作,所以我确信我已经离开了某个地方。
NumberOfDays <- ifelse(!is.na(LastDate), Sys.Date()-LastDate, as.numeric(""))
I'm working with a factor of dates (dateframe$LastDate) brought in from the csv file and would like to calculate the days from today. Missing values are the norm with dates populating about 20% of 1000 rows.
Here's what I have so far which is returning me the factor of days since 1970. It just feels like a lot of work to do a simple thing so I'm sure I'm off somewhere.
NumberOfDays <- ifelse(!is.na(LastDate), Sys.Date()-LastDate, as.numeric(""))
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要确保 LastDate 最初采用日期格式。我不确定这里需要 as.numeric 。
如果您希望 NA 为零,请使用
You need to make sure that LastDate is in date format initially. I'm not positive that as.numeric is required here.
If you want the NA's to be zero, use
确保您的 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。如果您有多个标识符,可以用逗号分隔它们。
希望这有帮助!
Make sure your LastDate field is formated and read as date in R. You can do so with a code like:
df$LastDate <- as.Date(paste(df$LastDate), "%y%m%d")
Please note that in this case the LastDate field is "yymmdd" format, this code may change depending in your data.
Once you have it formated properly, you can create a new variable with plyr:
df <- ddply(df, .(eventID), transform, NumberOfDays = Sys.Date() - LastDate)
In this case you can use an eventID that uniquely identifies rows. If you have multiple identifiers they you can separate them by commas.
Hope this helps!