Cara mengatasi masalah: coba atur "nama kolom"; pada suatu benda yang mempunyai kurang dari dua dimensi


Pesan kesalahan yang mungkin Anda temui saat menggunakan R adalah:

 Error in `colnames<-`(`*tmp*`, value = c("var1", "var2", "var3")): 
  attempt to set 'colnames' on an object with less than two dimensions

Kesalahan ini biasanya terjadi ketika Anda mencoba menggunakan fungsi colnames() untuk menetapkan nama kolom pada objek yang bukan bingkai data atau matriks.

Contoh berikut menunjukkan cara mengatasi kesalahan ini dalam praktiknya.

Bagaimana cara mereproduksi kesalahan tersebut

Misalkan kita memiliki bingkai data berikut di R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'C', 'B', 'C', 'B', 'B', 'C', 'A'),
                 points=c(12, 8, 26, 25, 38, 30, 24, 24, 15),
                 rebounds=c(10, 4, 5, 5, 4, 3, 8, 18, 22))

#view data frame
df

  team points rebounds
1 to 12 10
2 to 8 4
3 C 26 5
4 B 25 5
5 C 38 4
6 B 30 3
7 B 24 8
8 C 24 18
9 to 15 22

Sekarang misalkan kita mencoba menambahkan baris baru di akhir bingkai data:

 #define new row to add to end of data frame
new_row <- c('D', 15, 11)

#attempt to define column names for new row
colnames(new_row) <- colnames(df)

Error in `colnames<-`(`*tmp*`, value = c("team", "points", "rebounds")): 
  attempt to set 'colnames' on an object with less than two dimensions

Kami menerima kesalahan karena kami menggunakan fungsi colnames() pada vektor, bukan kerangka data atau matriks.

Bagaimana cara memperbaiki kesalahan tersebut

Untuk menghindari kesalahan ini, kita perlu memastikan bahwa kita menggunakan fungsi colnames() dengan bingkai data:

Misalnya, kita bisa menggunakan kode berikut untuk menambahkan baris baru di akhir bingkai data

 #define new row to add to end of data frame
new_row <- data. frame ('D', 15, 11)

#define column names for new row
colnames(new_row) <- colnames(df)

#add new row to end of data frame
df <- rbind(df, new_row)

#view updated data frame
df

   team points rebounds
1 to 12 10
2 to 8 4
3 C 26 5
4 B 25 5
5 C 38 4
6 B 30 3
7 B 24 8
8 C 24 18
9 to 15 22
10 D 15 11

Kali ini kami tidak menerima kesalahan apa pun karena kami menggunakan fungsi colnames() untuk menyetel nama kolom bingkai data, bukan vektor.

Kita kemudian berhasil menggunakan rbind() untuk mengikat baris baru ke akhir bingkai data yang ada.

Sumber daya tambahan

Tutorial berikut menjelaskan cara memperbaiki kesalahan umum lainnya di R:

Cara memperbaikinya di R: argumen melibatkan jumlah baris yang berbeda
Cara memperbaiki kesalahan R: dalam memilih argumen yang tidak digunakan
Cara memperbaiki di R: penggantian memiliki panjang nol

Tambahkan komentar

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