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

发布于 2024-10-21 09:15:00 字数 271 浏览 1 评论 0原文

我正在使用从 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一腔孤↑勇 2024-10-28 09:15:00

您需要确保 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

You need to make sure that LastDate is in date format initially. I'm not positive that as.numeric is required here.


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

If you want the NA's to be zero, use


NumberOfDays[is.na(NumberOfDays)] = 0

贩梦商人 2024-10-28 09:15:00

确保您的 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!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文