Cara memperbaikinya di r: dim(x) harus panjangnya positif
Kesalahan yang mungkin Anda temui di R adalah:
Error in apply(df$var1, 2, mean): dim(X) must have a positive length
Kesalahan ini terjadi ketika Anda mencoba menggunakan fungsi apply() untuk menghitung metrik untuk kolom bingkai data atau matriks, sambil memberikan vektor sebagai argumen, bukan bingkai data atau matriks.
Tutorial ini menjelaskan dengan tepat cara memperbaiki kesalahan ini.
Bagaimana cara mereproduksi kesalahan tersebut
Misalkan kita memiliki bingkai data berikut di 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
Sekarang misalkan kita mencoba menggunakan fungsi apply() untuk menghitung nilai rata-rata di kolom “poin”:
#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
Kesalahan terjadi karena fungsi apply() perlu diterapkan ke bingkai data atau matriks, namun dalam contoh ini kami mencoba menerapkannya ke kolom tertentu dalam bingkai data.
Bagaimana cara memperbaiki kesalahan tersebut
Cara untuk memperbaiki kesalahan ini adalah dengan memberikan nama frame data ke fungsi apply() sebagai berikut:
#calculate mean of every column in data frame
apply(df, 2, mean)
points rebound blocks
92,625 32,375 8,375
Dari outputnya kita bisa melihat nilai rata-rata setiap kolom pada frame data. Misalnya, nilai rata-rata kolom “poin” adalah 92,625 .
Kita juga dapat menggunakan fungsi ini untuk mencari rata-rata nilai tertentu saja dalam bingkai data:
#calculate mean of 'points' and 'blocks' column in data frame
apply(df[c(' points ', ' blocks ')], 2, mean)
point blocks
92,625 8,375
Terakhir, jika kita ingin mencari rata-rata suatu kolom, kita dapat menggunakan fungsi Mean() tanpa menggunakan fungsi apply() sama sekali:
#calculate mean of 'points' column
mean(df$points)
[1] 92,625
Sumber daya tambahan
Tutorial berikut menjelaskan cara mengatasi kesalahan umum lainnya di R:
Cara memperbaiki di R: Nama tidak sesuai dengan nama sebelumnya
Cara memperbaikinya di R: panjang benda yang lebih panjang bukan kelipatan panjang benda yang lebih pendek
Cara memperbaikinya di R: kontras hanya dapat diterapkan pada faktor dengan 2 level atau lebih