R での修正方法: aggregate.data.frame() のエラー: 引数は同じ長さである必要があります


R で発生する可能性のあるエラーは次のとおりです。

 Error in aggregate.data.frame(as.data.frame(x), ...): 
  arguments must have same length 

このエラーは、 Aggregate()関数を使用して R のデータ フレームの 1 つ以上の列の値を要約しようとしたが、列を参照するときにデータ フレームの名前を指定できない場合に発生します。

このチュートリアルでは、このエラーを修正する方法を正確に説明します。

エラーを再現する方法

R に次のデータ フレームがあるとします。

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C'),
                 points=c(5, 9, 12, 14, 14, 13, 10, 6, 15, 18))

#view data frame
df

   team points
1 to 5
2 to 9
3 to 12
4 to 14
5 to 14
6 B 13
7 B 10
8 B 6
9 C 15
10 C 18

次に、 Aggregate()関数を使用して、チームごとにグループ化された平均ポイント値を計算しようとするとします。

 #attempt to calculate mean points value by team
aggregate(df$points, list(' team '), FUN=mean)

Error in aggregate.data.frame(as.data.frame(x), ...): 
  arguments must have same length

list()引数にデータ ブロック名の指定に失敗したため、エラーが発生します。

エラーを修正する方法

このエラーを修正する方法は、 list()引数で単に「team」の代わりにdf$teamを使用することです。

 #calculate mean points value by team
aggregate(df$points, list(df$team), FUN=mean)

  Group.1 x
1 A 10.800000
2 B 9.666667
3 C 16.500000

list()引数にデータ フレーム名を指定したため、今回はエラーが発生しないことに注意してください。

list()引数で複数の列名を使用する場合は、各列名にデータ フレーム名を指定する必要があることに注意してください。指定しないとエラーが発生します。

追加リソース

次のチュートリアルでは、R の他の一般的なエラーを解決する方法について説明します。

R での修正方法: 名前が以前の名前と一致しない
R での修正方法: 長いオブジェクトの長さが短いオブジェクトの長さの倍数ではありません
R での修正方法: コントラストは 2 レベル以上の因子にのみ適用できます。

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です