小编Mal*_*One的帖子

按组计算列中 1 出现的间隔年数

我已将这两个代码建议应用到我的原始数据集来比较peace1 和peace2。

和平1:

d_muslim <- d_muslim %>% 
   mutate(last_conflict = lag(if_else(conflict == 1, year,NA),default = min(year) - 1),
   .by = country) %>%     
   tidyr::fill(last_conflict, .direction = "down") %>% 
   mutate(peace1 = year - last_conflict - 1)
Run Code Online (Sandbox Code Playgroud)

和平2:

d_muslim <- d_muslim %>%
  mutate(helper = cumsum(lag(conflict, default = 1) == 1),.by = country) %>% 
  mutate(peace2 = year - first(year), .by = c(country, helper)) %>%
  select(-helper)
Run Code Online (Sandbox Code Playgroud)

结果:

国家 冲突 和平1 和平2
伊朗 1946年 0 -73 0
伊朗 1947年 0 -72 1
伊朗 1948年 0 -71 …

r dataframe dplyr

4
推荐指数
1
解决办法
158
查看次数

标签 统计

dataframe ×1

dplyr ×1

r ×1