1. ホーム
  2. r

[解決済み】unique.default(x)のRエラー unique()はベクトルにのみ適用されます。

2022-02-23 13:11:55

質問

という名前のデータセットを作成しました。 state 内蔵の行列から state.x77 2つの連続変数 (Population と Income)と2つの因子変数 (region と area)を持つ。

地域別の平均所得を計算したのは tapply() , by() , aggregate() および ave() をクリックすると、返されたオブジェクトの形式が表示されます。

しかし、その呼び出しは ave() はエラーを発生させます。

Error in unique.default(x) : unique() applies only to vectors.

そのコードは

## Mean income by region
tapply(state$inc, state$region, mean)
# Northeast         South North Central          West 
# 4570.222       4011.938      4611.083      4702.615 

by(state$inc, state$region, mean)
# state$region: Northeast
#
# [1] 4570.222
# [...]

aggregate(state$inc, list(state$region), mean)
#
#         Group.1        x
# 1     Northeast 4570.222
# 2         South 4011.938
# 3 North Central 4611.083
# 4          West 4702.615

ave(state$inc, state$region, mean)
# Error in unique.default(x) : unique() applies only to vectors

なぜエラーが発生するのですか?どうすれば防ぐことができますか?

解決方法を教えてください。

これは非常によくある間違いで、名前付き引数の FUN :

ave(state$inc, state$region, FUN = mean)

その他 mean は別のグループ化変数として解釈されます (この変数に含まれる ... 引数を ave .)