R中的“ mean.default(X [[i]],...)错误:'trim'必须是长度为1的数字”

时间:2019-02-21 21:00:29

标签: r

说,我有以下数据:

LungCap Age Height  Smoke   Gender  Caesarean
6.475   6   62.1    no      male    no
10.125  18  74.7    yes     female  no
9.55    16  69.7    no      female  yes
11.125  14  71      no      male    no
4.8      5  56.9    no      male    no
6.225   11  58.7    no      female  no

现在请查看以下命令:

> attach(LungCap6)
> tapply(Age, Smoke, mean, T)
Error in mean.default(X[[i]], ...) : 'trim' must be numeric of length one
> length(Age)
[1] 6
> tapply(X=Age, INDEX=Smoke, FUN=mean, na.rm=T)
  no  yes 
10.4 18.0 
> tapply(Age, Smoke, mean, T)
Error in mean.default(X[[i]], ...) : 'trim' must be numeric of length one
>

为什么会出现上述错误,以及如何解决?

1 个答案:

答案 0 :(得分:1)

trim=是函数mean()的第二个参数,在TRUE中调用时,您不想将tapply()传递给该参数。这就是tapply()的工作,它将额外的args保留顺序保留给它调用的函数。

因此,您必须明确命名要发送的参数TRUE,在本例中为na.rm=,因为它是mean()的第三个参数,而不是第二个参数:

> attach(LungCap6)
> tapply(Age, Smoke, mean, na.rm=TRUE)

使用?mean

检查参数顺序