Как исправить в 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 и более уровнями