Як виправити в r: dim(x) має мати позитивну довжину


Помилка, з якою ви можете зіткнутися в R:

 Error in apply(df$var1, 2, mean): dim(X) must have a positive length 

Ця помилка виникає, коли ви намагаєтеся використати функцію apply() для обчислення метрики для стовпця кадру даних або матриці, надаючи вектор як аргумент замість кадру даних або матриці.

Цей посібник пояснює, як саме виправити цю помилку.

Як відтворити помилку

Припустимо, що ми маємо наступний кадр даних у R:

 #create data frame
df <- data. frame (points=c(99, 97, 104, 79, 84, 88, 91, 99),
                 rebounds=c(34, 40, 41, 38, 29, 30, 22, 25),
                 blocks=c(12, 8, 8, 7, 8, 11, 6, 7))

#view data frame
df

  points rebound blocks
1 99 34 12
2 97 40 8
3 104 41 8
4 79 38 7
5 84 29 8
6 88 30 11
7 91 22 6
8 99 25 7

Тепер припустімо, що ми спробуємо використати функцію apply() для обчислення середнього значення в стовпці «балів»:

 #attempt to calculate mean of 'points' column
apply(df$points, 2, mean)

Error in apply(df$points, 2, mean): dim(X) must have a positive length

Помилка виникає через те, що функцію apply() потрібно застосувати до кадру даних або матриці, але в цьому прикладі ми намагаємося застосувати її до певного стовпця у кадрі даних.

Як виправити помилку

Щоб виправити цю помилку, просто надайте назву кадру даних функції apply() наступним чином:

 #calculate mean of every column in data frame
apply(df, 2, mean)

  points rebound blocks 
  92,625 32,375 8,375 

З результату ми можемо побачити середнє значення кожного стовпця у кадрі даних. Наприклад, середнє значення стовпця «бали» становить 92 625 .

Ми також можемо використовувати цю функцію, щоб знайти лише середнє значення певних значень у кадрі даних:

 #calculate mean of 'points' and 'blocks' column in data frame
apply(df[c(' points ', ' blocks ')], 2, mean)

point blocks 
92,625 8,375

Нарешті, якщо ми хочемо знайти середнє значення одного стовпця, ми можемо використати функцію Mean() взагалі без використання функції apply() :

 #calculate mean of 'points' column
mean(df$points)

[1] 92,625

Додаткові ресурси

У наступних посібниках пояснюється, як вирішити інші поширені помилки в R:

Як виправити в R: імена не збігаються з попередніми іменами
Як виправити в R: довжина довшого об’єкта не є кратною довжині коротшого об’єкта
Як виправити в R: контрасти можна застосовувати лише до факторів із 2 або більше рівнями

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

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