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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *