如何在聚合R中应用自定义函数

时间:2015-10-07 09:32:31

标签: r na

大家好! 我试图找到类似的问题,但我没有。我们假设我们有一个像这样的简单数据框

version 2.1.0

我需要按小组汇总:na.rm=TRUE 但是,当我使用na.rm=TRUE时,第1组消失了。绝对有必要使用customMean<-function(x){ if (all(is.na(x))){ return (NA_integer_) } else { return(mean(x,na.rm=TRUE)) } } ,因为在相反的情况下,我会得到不正确的平均值。我也尝试过使用自定义功能:

navigator.splashscreen.show();

但结果是一样的。有人知道如何解决这个问题吗?我希望最终结果如下:enter image description here。 感谢

1 个答案:

答案 0 :(得分:1)

默认情况下,aggregate的公式方法有na.action=na.omit。因此,如果存在NA值,则会删除整行。我们可以将其更改为na.action=NULL,它应该有效。

aggregate(value~group, data=data, mean,na.rm=TRUE, na.action=NULL)
#    group value
#1     1   NaN
#2     2   2.5