【发布时间】:2018-08-21 17:23:10
【问题描述】:
我正在使用一个数据集,其中每一行都包含对个人 (ID) 的单独观察。我希望 R 查找第一个和最后一个观察日期并计算“活动天数”的总数,将这些值放在一个新列中。当我运行下面的代码时,我会为每个条目得到一个具有相同数字的列 - 整个数据集的最早和最晚日期之间的总天数,而不是每个人。
我正在使用 dplyr 和 lubridate。我使用此页面 (difference between the first date and last date within same individual in R) 来获取代码帮助,但它对我不起作用。
谁能帮我弄清楚我哪里出错了?
data$date <- mdy(data$date)
data <- data %>%
group_by(ID) %>%
mutate(total.activity.days = max((date)) - min((date)))
cage date ID total.activity.days
1 1 2018-04-30 40 54
2 1 2018-04-30 76 54
3 1 2018-05-02 40 54
4 1 2018-05-02 76 54
5 1 2018-05-04 40 54
6 1 2018-05-04 76 54
7 1 2018-04-28 59 54
8 1 2018-04-29 59 54
【问题讨论】:
-
你是对的!我没有注意到这一点。我在修复该项目的情况下再次运行代码,但同样的问题仍然存在。新列中的数字对于每一行都是相同的。
-
如果您在计算过程中使用
ymd,则不需要data$date <- mdy(data$date)。另外,为什么要在第一年使用mdy?