我在计算聚合方法时遇到麻烦.请参阅以下代码:
tab=data.frame(a=c(1:3,1:3), b=c(1,2,NA,3,NA,NA))
tab
a b
1 1 1
2 2 2
3 3 NA
4 1 3
5 2 NA
6 3 NA
attach(tab)
aggregate(b, by=list(a), data=tab, FUN=mean, na.rm=TRUE)
Group.1 x
1 1 2
2 2 2
3 3 NaN
Run Code Online (Sandbox Code Playgroud)
如果向量具有所有NA,我想要NA而不是NaN,即我想要输出
Group.1 x
1 1 2
2 2 2
3 3 NA
Run Code Online (Sandbox Code Playgroud)
我尝试使用自定义函数:
adjmean=function(x) {if(all(is.na(x))) NA else mean(x,na.rm=TRUE)}
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
aggregate(b, by=list(a), data=tab, FUN=adjmean)
Error in FUN(X[[1L]], ...) :
unused argument (data = list(a = c(1, 2, 3, 1, 2, …Run Code Online (Sandbox Code Playgroud)