修正方法: xy.coords(x, y, xlabel, ylabel, log) のエラー: 'x' と 'y' の長さが異なります


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

 Error in xy.coords(x, y, xlabel, ylabel, log): 
  'x' and 'y' lengths differ 

このエラーは、2 つの変数のプロットを作成しようとしたが、変数の長さが同じではない場合に発生します。

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

エラーを再現する方法

R で次の 2 つの変数の散布図を作成しようとしているとします。

 #define x and y variables
x <- c(2, 5, 5, 8)
y <- c(22, 28, 32, 35, 40, 41)

#attempt to create scatterplot of x vs. y
plot(x, y)

Error in xy.coords(x, y, xlabel, ylabel, log): 
  'x' and 'y' lengths differ

x と y の長さが等しくないため、エラーが発生します。

これは、各変数の長さを出力することで確認できます。

 #print length of x
length(x)

[1] 4

#print length of y
length(y)

[1] 6

#check if length of x and y are equal
length(x) == length(y)

[1] FALSE

エラーを修正する方法

このエラーを修正する最も簡単な方法は、2 つのベクトルが同じ長さであることを確認することです。

 #define x and y variables to have same length
x <- c(2, 5, 5, 8, 9, 12)
y <- c(22, 28, 32, 35, 40, 41)

#confirm that x and y are the same length
length(x) == length(y)

[1] TRUE

create scatterplot of x vs. y
plot(x, y)

一方のベクトルが他方のベクトルより短いことが判明した場合は、短い方のベクトルの長さまでの値のみをプロットすることを選択できます。

たとえば、ベクトル xa に 4 つの値があり、ベクトル y に 6 つの値がある場合、各ベクトルの最初の 4 つの値のみを使用して散布図を作成できます。

 #define x and y variables
x <- c(2, 5, 5, 8)
y <- c(22, 28, 32, 35, 40, 41)

#create scatterplot of first 4 pairwise values of x vs. y
plot(x, y[1: length (x)])

点群の作成には各ベクトルの最初の 4 つの値のみが使用されることに注意してください。

追加リソース

R で修正する方法: 強制によって導入された NA
R で修復する方法: 範囲外のヒント
修正方法: 長いオブジェクトの長さは、短いオブジェクトの長さの倍数ではありません。

コメントを追加する

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