想象一下我有这个数据集:
id data_level var1 var2
aa h 1 4
bb l 2 5
cc l 1.4 4.2
dd h 1.3 3.8
我想添加新行以获取此信息:
id data_level var1 var2
aa h 1 4
bb l 2 5
cc l 1.4 4.2
dd h 1.3 3.8
h h 2.3 3.9
l l 3.4 4.6
All All 5.7 4.25
新行分别为:
在var 1中,data_level = h的所有值的总和,data_level = l的所有值的总和,data_level = l的所有值的总和
在var 2中,data_level = h的所有值的平均值,data_level = l的所有值的平均值,所有值的平均值。
基本上,它是在数据级别上以数据为条件的聚合。有花哨的方法吗?
这不是一个非常好的方法,但是您可以使用dplyr
:
df %>%
group_by(data_level) %>%
summarise(id=data_level, var1=sum(var1), var2=mean(var2), .groups="drop") %>%
distinct() %>%
rbind(df, ., c("All", "All", sum(.$var1), mean(.$var2)))
哪个返回
# A tibble: 7 x 4
id data_level var1 var2
<chr> <chr> <chr> <chr>
1 aa h 1 4
2 bb l 2 5
3 cc l 1.4 4.2
4 dd h 1.3 3.8
5 h h 2.3 3.9
6 l l 3.4 4.6
7 All All 5.7 4.25
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句