Як виправити в 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: заміна має нульову довжину

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *