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

Как исправить: ошибка в 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)

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

Например, если вектор x имеет 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, представленные Coercion
Как исправить в R: нижний индекс выходит за пределы
Как исправить: более длинная длина объекта не кратна более короткой длине объекта

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.