当两个其他变量等于某个值时,我想要一个变量的平均值。例如,我想创建一个新的数据框,它有一个名为“mean”的变量,它给出了当 year == 2003 和 mon == 1 时 S1 中所有值的平均值,然后是平均值的下一个值当 year == 2003 和 mon == 2 时的 S1 值。
YEAR MON S1 S
<dbl> <dbl> <dbl> <dbl>
1 2003 1 8.2 1.03
2 2003 1 7.39 0.97
3 2003 1 7.78 0.82
4 2003 2 7 0.91
5 2003 2 5 1.93
6 2003 2 5.49 0.31
答案 0 :(得分:0)
使用 group by operation 可以更轻松地完成,并且与 case_when
相比也应该更高效
library(dplyr)
df1 %>%
group_by(YEAR, MON) %>%
summarise(mean = mean(S1, na.rm = TRUE), .groups = 'drop')