小编Abh*_*tta的帖子

R中的聚合NA

我在计算聚合方法时遇到麻烦.请参阅以下代码:

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)

aggregate r nan na

3
推荐指数
1
解决办法
1557
查看次数

标签 统计

aggregate ×1

na ×1

nan ×1

r ×1