R での修正方法: 引数に異なる行数が含まれる


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

 arguments imply differing number of rows: 6, 5

このエラーは、データ フレームを作成しようとしたときに、データ フレームの各列の行数が同じでない場合に発生します。

次の例は、このエラーを実際に修正する方法を示しています。

エラーを再現する方法

3 つのベクトルを使用して R でデータ フレームを作成しようとしているとします。

 #definevectors
x1 <- c(1, 2, 3, 4, 5, 6)
x2 <- c(8, 8, 8, 7, 5)
y <- c(9, 11, 12, 13, 14, 16)

#attempt to create data frame using vectors as columns
df <- data. frame (x1=x1, x2=x2, y=y)

Error in data.frame(x1 = x1, x2 = x2, y = y): 
  arguments imply differing number of rows: 6, 5

各ベクトルの長さが同じではないため、結果として得られるデータ フレームの各列の行数が同じではないため、エラーが発生します。

これは、各ベクトルの長さを出力することで確認できます。

 #print length of each vector
length(x1)

[1] 6

length(x2)

[1] 5

length(y)

[1] 6

ベクトルx2 の長さは 5 であり、ベクトルx1およびyの長さに対応していないことがわかります。

エラーを修正する方法

このエラーを修正するには、結果として得られるデータ フレームの各列の行数が同じになるように、各ベクトルが同じ長さであることを確認するだけです。

たとえば、各ベクトルが同じ長さになるように、最短のベクトルに NA 値を埋め込むことができます。

 #definevectors
x1 <- c(1, 2, 3, 4, 5, 6)
x2 <- c(8, 8, 8, 7, 5)
y <- c(9, 11, 12, 13, 14, 16)

#pad shortest vector with NA's to have same length as longest vector
length(x2) <- length(y)

#create data frame using vectors as columns
df <- data. frame (x1=x1, x2=x2, y=y)

#view resulting data frame
df

  x1 x2 y
1 1 8 9
2 2 8 11
3 3 8 12
4 4 7 13
5 5 5 14
6 6 NA 16

結果として得られるデータ フレームの各列の行数は同じであるため、エラーは発生しないことに注意してください。

追加リソース

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

R で修正する方法: 引数が数値でも論理でもない: na を返す
Rで修復する方法:二項演算子の非数値引数
R での修復方法: 置換の長さはゼロです

コメントを追加する

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