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