按指标变量计算日期差异

Calculate difference in date by indicator variable

提问人:Mark 提问时间:9/20/2022 最后编辑:Mark 更新时间:9/20/2022 访问量:25

问:

假设我有以下示例数据帧,每个 id 观测值包含 1 组 1 个观测值(参考值):

id  date             group
1   15-01-2022        1
1   15-01-2022        2
1   16-01-2022        2
1   20-01-2022        2
2   18-01-2022        1
2   20-01-2022        2
2   27-01-2022        2

我想计算一列,用于计算第 1 组与第 2 组中 id 的每个日期之间的差值:

id  date             group  diff
1   15-01-2022        1      NA
1   15-01-2022        2      0
1   16-01-2022        2      1
1   20-01-2022        2      5
2   18-01-2022        1      NA
2   20-01-2022        2      2
2   27-01-2022        2      9
r date datetime 数据操作

评论

1赞 Gregor Thomas 9/20/2022
每个总是只有一行吗?group = 1id
0赞 Mark 9/20/2022
是的,这是存在参考日期或索引日期的情况,并且我正在尝试查找其他观测值与参考日期的接近程度。

答:

0赞 Gregor Thomas 9/20/2022 #1
library(dplyr)
df %>% 
  group_by(id) %>%
  mutate(diff = date - date[group == 1]) %>%
  ungroup()

这假设你已经是班级了。它将为第一个值放置一个而不是一个。如果你需要,那么你可以改用:dateDate0NANA

df %>% 
  group_by(id) %>%
  mutate(diff = ifelse(group == 1, NA, date - date[group == 1])) %>%
  ungroup()