如何在聚合 R 中应用自定义函数
How to apply custom function in aggregate R
各位!
我试图找到类似的问题,但我没有。假设我们有一个像这样的简单数据框
我需要按组汇总:aggregate(value~group, data=data, mean,na.rm=TRUE)
但是,当我使用 na.rm=TRUE
时,第 1 组消失了。绝对有必要使用 na.rm=TRUE
,因为在相反的情况下我会得到不正确的平均值。我也尝试过使用自定义函数:
customMean<-function(x){
if (all(is.na(x))){
return (NA_integer_)
} else {
return(mean(x,na.rm=TRUE))
}
}
但是,结果是一样的。有人知道如何解决这个问题吗?我希望最终结果是这样的: enter image description here 。
谢谢
默认情况下,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
各位! 我试图找到类似的问题,但我没有。假设我们有一个像这样的简单数据框
我需要按组汇总:aggregate(value~group, data=data, mean,na.rm=TRUE)
但是,当我使用 na.rm=TRUE
时,第 1 组消失了。绝对有必要使用 na.rm=TRUE
,因为在相反的情况下我会得到不正确的平均值。我也尝试过使用自定义函数:
customMean<-function(x){
if (all(is.na(x))){
return (NA_integer_)
} else {
return(mean(x,na.rm=TRUE))
}
}
但是,结果是一样的。有人知道如何解决这个问题吗?我希望最终结果是这样的: enter image description here 。 谢谢
默认情况下,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