Одна ошибка, с которой вы можете столкнуться в 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 rebounds 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 rebounds 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)
points blocks
92.625 8.375
Наконец, если мы хотим найти среднее значение только одного столбца, мы можем использовать функцию mean() вообще без использования функции apply() :
#calculate mean of 'points' column
mean(df$points)
[1] 92.625
Дополнительные ресурсы
В следующих руководствах объясняется, как устранять другие распространенные ошибки в R:
Как исправить в R: имена не совпадают с предыдущими именами
Как исправить в R: более длинная длина объекта не кратна более короткой длине объекта
Как исправить в R: контрасты могут применяться только к факторам с 2 или более уровнями