数据框df_biodiv含有Year、Area和CropName列定义向量列vanishvarity等于按Year和CropName分组连续3年总Area小于10的CropName数量
可以使用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 著作权归作者所有。请勿转载和采集!