【发布时间】:2015-09-09 17:35:54
【问题描述】:
我有 2 列,其中包含约 2000 行日期。一个是访问日期(df$visitdate)的变量,另一个是个人的出生日期(df$birthday)。
想知道是否有任何简单的方法可以减去访问日期-出生日期来创建变量“访问时的年龄”,考虑闰年等。
我尝试使用以下代码(来自类似问题的答案),但在我的情况下不起作用。
求一年的秒数:
seconds_in_a_year <- as.integer((seconds(ymd("2010-01-01")) - seconds(ymd("2009-01-01"))))
现在获取您想要的 2 个日期之间的秒数
seconds_between_dates <- as.integer(seconds(date1) - seconds(date2))
您对浮点数的最终答案将是
years_between_dates <- seconds_between_dates / seconds_in_a_year
当我尝试将其应用于我的数据框时(注意:使用变量而不是特定日期,所以这可能是原因)我得到了以下信息: seconds_in_a_year
警告信息: 强制引入的 NAs
按照代码,我得到了最终输出:
years_between_dates
[1] 1.157407e-05 [2] 1.157407e-05
非常感谢任何帮助!
【问题讨论】:
-
您说“在您的情况下”它不起作用 - 那么,您的情况是什么?您能否展示您正在使用的数据(例如日期的格式)?例如,发布
dput(head(df))的结果将创建一个可重复的示例,帮助人们回答