Как исправить в r: аргументы содержат разное количество строк
Ошибка, с которой вы можете столкнуться в R:
arguments imply differing number of rows: 6, 5
Эта ошибка возникает, когда вы пытаетесь создать фрейм данных, а количество строк в каждом столбце фрейма данных не одинаково.
В следующем примере показано, как исправить эту ошибку на практике.
Как воспроизвести ошибку
Предположим, мы пытаемся создать фрейм данных в R, используя три вектора:
#definevectors
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, чтобы каждый вектор имел одинаковую длину:
#definevectors
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: аргумент не является ни числовым, ни логическим: return na
Как исправить в R: нечисловой аргумент бинарного оператора
Как восстановить в R: замена имеет нулевую длину