可以使用dplyr包进行操作,代码如下:

library(dplyr)

vanishvarity <- df_biodiv %>%
  group_by(Year, CropName) %>%
  summarize(total_area = sum(Area)) %>%
  arrange(Year, CropName) %>%
  mutate(three_year_total = total_area + lead(total_area, 1) + lead(total_area, 2)) %>%
  filter(three_year_total < 10) %>%
  group_by(Year) %>%
  summarize(num_vanished = n())

首先,使用group_by函数按Year和CropName分组,然后使用summarize函数计算每个组的总Area。接着,使用arrange函数按Year和CropName排序,并使用mutate函数创建一个新的列three_year_total,表示该CropName在当前年份及后两年的总Area。然后,使用filter函数筛选出three_year_total小于10的组,即连续3年总Area小于10的CropName。最后,使用group_by和summarize函数对每个Year计算筛选后的组数,即num_vanished


原文地址: https://www.cveoy.top/t/topic/dwHt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录