我想通过一个字符向量聚合多个列。然而,我认为基数R聚合适用于完整的情况,所以如果一个求和变量对于一个变量缺失,它将被排除在所有求和之外。这说明了问题
v1 <- c(1, 1, 1, NA)
v2 <- c(2, 2, NA, 2)
v3 <- c("A", "B", "A", "B")
df <- data.frame(v1, v2, v3)
aggregate(.~v3, data=df, FUN=sum)
与输出
v3 v1 v2
1 A 1 2
2 B 1 2
我期待的输出是
v3 v1 v2
1 A 2 2
2 B 1 4
所以v1和3,v2和6,就像在df
中一样aggregate
是否有可以用来生成所需输出的更改?谢谢.
2条答案
按热度按时间af7jpaap1#
aggregate
具有参数na.action
na.action:一个函数,指示当数据包含“NA”值时应该发生什么。默认值是忽略给定变量中的缺失值。
它给出了与
na.pass
一起使用时所期望的结果dgjrabp22#
另一种方法是将NA替换为0: