Cara menangani kesalahan r: $ operator tidak valid untuk vektor atom


Kesalahan umum yang mungkin Anda temui di R adalah:

 $ operator is invalid for atomic vectors

Kesalahan ini terjadi ketika Anda mencoba mengakses elemen vektor atom menggunakan operator $ .

Sebuah “vektor atom” adalah objek data satu dimensi yang dibuat menggunakan fungsi c() atau vector() di R.

Sayangnya, $ tidak dapat digunakan untuk mengakses elemen vektor atom. Sebagai gantinya, Anda harus menggunakan tanda kurung ganda [[]] atau fungsi getElement() .

Tutorial ini membagikan contoh cara menangani kesalahan ini dalam praktiknya.

Cara mereproduksi pesan kesalahan

Misalkan kita mencoba menggunakan operator $ untuk mengakses elemen vektor berikut di R:

 #definevector
x <- c(1, 3, 7, 6, 2)

#provide names
names(x) <- c('a', 'b', 'c', 'd', 'e')

#display vector
x

a B C D E
1 3 7 6 2

#attempt to access value in 'e'
x$e

Error in x$e: $ operator is invalid for atomic vectors

Kami menerima kesalahan karena tidak valid menggunakan operator $ untuk mengakses elemen vektor atom. Kita juga dapat memeriksa apakah vektor kita memang bersifat atomik:

 #check if vector is atomic
is. atomic (x)

[1] TRUE

Metode #1: Akses Elemen Menggunakan Tanda Kurung Ganda

Salah satu cara untuk mengakses elemen berdasarkan nama dalam vektor adalah dengan menggunakan notasi [[]] :

 #definevector
x <- c(1, 3, 7, 6, 2)

#provide names
names(x) <- c('a', 'b', 'c', 'd', 'e')

#access value for 'e'
x[['e']]

[1] 2

Metode #2: Akses Elemen Menggunakan getElement()

Cara lain untuk mengakses elemen berdasarkan nama dalam vektor adalah dengan menggunakan notasi getElement() :

 #definevector
x <- c(1, 3, 7, 6, 2)

#provide names
names(x) <- c('a', 'b', 'c', 'd', 'e')

#access value for 'e'
getElement(x, 'e')

[1] 2

Metode #3: Ubah vektor menjadi bingkai data dan gunakan $operator

Cara lain untuk mengakses elemen berdasarkan nama dalam vektor adalah dengan terlebih dahulu mengonversi vektor menjadi bingkai data, lalu menggunakan operator $ untuk mengakses nilainya:

 #definevector
x <- c(1, 3, 7, 6, 2)

#provide names
names(x) <- c('a', 'b', 'c', 'd', 'e')

#convert vector to data frame
data_x <- as. data . frame (t(x))

#display data frame
data_x

  a B C D E
1 1 3 7 6 2

#access value for 'e'
data_x$e

[1] 2

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: NA yang diperkenalkan dengan paksaan
Cara memperbaiki di R: petunjuk di luar batas
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 *