Как исправить: ошибка в xy.coords(x, y, xlabel, ylabel, log): длины «x» и «y» различаются.


Распространенная ошибка, с которой вы можете столкнуться в R:

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

Эта ошибка возникает, когда вы пытаетесь создать график двух переменных, но переменные имеют разную длину.

В этом руководстве объясняется, как именно исправить эту ошибку.

Как воспроизвести ошибку

Предположим, мы пытаемся создать диаграмму рассеяния следующих двух переменных в R:

 #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

Как исправить ошибку

Самый простой способ исправить эту ошибку — просто убедиться, что два вектора имеют одинаковую длину:

 #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)])

Обратите внимание, что для создания облака точек используются только первые четыре значения каждого вектора.

Дополнительные ресурсы

Как исправить в R: NA, введенные по принуждению
Как починить в R: подсказка за пределами
Как исправить: длина более длинного объекта не кратна длине более короткого объекта.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *