【发布时间】:2021-12-12 01:44:24
【问题描述】:
我需要按两个分类列聚合(分组)数据框,但一列有一些缺失值(按设计)。但是,聚合函数会删除具有缺失值的行。 还有其他方法可以保留两个分类列的所有组合吗?
这是一个可重现的例子:
汇总二氧化碳数据:
aggregate(. ~Plant+Type, data=CO2, sum, na.rm=TRUE)
添加缺少“类型”的行:
new = data.frame(Plant="Test",Type = "",Treatment=7, conc = 200, uptake = 200,stringsAsFactors = FALSE)
CO2 = rbind(CO2,new)
聚合新数据不会改变输出:
aggregate(. ~Plant+Type, data=CO2, sum, na.rm=TRUE)
我期望得到的是带有植物“测试”的新行:
Plant Type Treatment conc uptake
1 Qn1 Quebec 7 2950 216.6
2 Qn2 Quebec 7 3045 246.1
3 Qn3 Quebec 7 3045 263.3
4 Qc1 Quebec 14 3045 209.8
5 Qc3 Quebec 14 3045 228.1
6 Qc2 Quebec 14 3045 228.9
7 Mn3 Mississippi 7 3045 168.8
8 Mn2 Mississippi 7 3045 191.4
9 Mn1 Mississippi 7 3045 184.8
10 Mc2 Mississippi 14 3045 85.0
11 Mc3 Mississippi 14 3045 121.1
12 Mc1 Mississippi 14 3045 126.0
13 Test 7 200 200
【问题讨论】:
标签: r aggregation