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