1. ホーム
  2. r

[解決済み] Rで「Error in mean.default(X[[i]], ...) : 'trim' must be numeric of length one」メッセージが表示される。

2022-02-06 22:45:34

質問

例えば、次のようなデータがあるとします。

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
>

上記のエラーが出る理由とその解決方法を教えてください。

どのように解決するのですか?

trim= は関数の第2引数 mean() を渡す必要はありません。 TRUE の中で呼び出されたとき、その引数に tapply() . それが tapply() これは、呼び出す関数に順序を保ったまま余分な引数を渡しています。

したがって、送信したい引数に明示的に名前を付ける必要があります。 TRUE この場合 na.rm= の第2引数ではなく、第3引数であるためです。 mean() :

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

で引数の順番を確認します。 ?mean