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


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

arguments imply differing number of rows: 6, 5

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

В следующем примере показано, как исправить эту ошибку на практике.

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

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

#define vectors
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, чтобы каждый вектор имел одинаковую длину:

#define vectors
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: замена имеет нулевую длину

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