Cara memperbaiki: objek (daftar) tidak bisa dipaksa mengetik "double";


Kesalahan umum yang mungkin Anda temui di R adalah:

 Error: (list) object cannot be coerced to type 'double'

Kesalahan ini terjadi ketika Anda mencoba mengonversi daftar beberapa elemen menjadi elemen numerik tanpa terlebih dahulu menggunakan fungsi unlist() .

Tutorial ini membagikan langkah-langkah tepat yang dapat Anda gunakan untuk mengatasi kesalahan ini.

Bagaimana cara mereproduksi kesalahan tersebut

Kode berikut mencoba mengonversi daftar beberapa item menjadi nilai numerik:

 #create list
x <- list(1:5, 6:9, 7)

#display list
x

[[1]]
[1] 1 2 3 4 5

[[2]]
[1] 6 7 8 9

[[3]]
[1] 7

#attempt to convert list to numeric
x_num <- as. numeric (x)

Error: (list) object cannot be coerced to type 'double'

Karena kami tidak menggunakan fungsi unlist() , kami menerima pesan kesalahan (list) tidak dapat dipaksa mengetik “double” .

Bagaimana cara memperbaiki kesalahan tersebut

Untuk mengonversi daftar menjadi numerik, kita perlu memastikan bahwa kita menggunakan fungsi unlist() :

 #create list
x <- list(1:5, 6:9, 7)

#convert list to numeric
x_num <- as. numeric (unlist(x))

#display numeric values
x_num

[1] 1 2 3 4 5 6 7 8 9 7

Kita dapat menggunakan fungsi class() untuk memverifikasi bahwa x_num memang merupakan vektor nilai numerik:

 #verify that x_num is numeric
class(x_num)

[1] "digital"

Kita juga dapat memeriksa apakah daftar asli dan daftar numerik mempunyai jumlah elemen yang sama:

 #display total number of elements in original list
sum(lengths(x))

[1] 10

#display total number of elements in numeric list
length(x_num)

[1] 10

Kita melihat bahwa kedua panjangnya bersesuaian.

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: kontras hanya dapat diterapkan pada faktor dengan 2 level atau lebih
Cara memperbaikinya di R: panjang benda yang lebih panjang bukan kelipatan panjang benda yang lebih pendek

Tambahkan komentar

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