Cara memperbaiki di r: kesalahan di sort.int(x, na.last, descending, …): 'x' harus atomik
Pesan kesalahan yang mungkin Anda temui saat menggunakan R adalah:
Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...): 'x' must be atomic
Kesalahan ini terjadi ketika Anda mencoba mengurutkan daftar.
Secara default, R hanya mampu mengurutkan objek atom seperti vektor. Jadi, untuk menggunakan sort() dengan daftar, Anda harus menggunakan fungsi unlist() terlebih dahulu.
Contoh berikut menunjukkan cara mengatasi kesalahan ini dalam praktiknya.
Bagaimana cara mereproduksi kesalahan tersebut
Misalkan kita memiliki daftar berikut di R:
#create list
some_list <- list(c(4, 3, 7), 2, c(5, 12, 19))
#view list
some_list
[[1]]
[1] 4 3 7
[[2]]
[1] 2
[[3]]
[1] 5 12 19
#view class
class(some_list)
[1] "list"
Sekarang misalkan kita mencoba mengurutkan nilai-nilai dalam daftar:
#attempt to sort the values in the list
sort(some_list)
Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...):
'x' must be atomic
Kami menerima kesalahan karena R tidak mampu mengurutkan daftar secara langsung.
Bagaimana menghindari kesalahan tersebut
Untuk menghindari error, Anda harus menggunakan fungsi unlist() terlebih dahulu sebagai berikut:
#sort values in list
sort(unlist(some_list))
[1] 2 3 4 5 7 12 19
Perhatikan bahwa kami berhasil mengurutkan daftar nilai tanpa kesalahan apa pun karena kami pertama kali menggunakan unlist() , yang mengonversi daftar menjadi vektor numerik.
Secara default, R mengurutkan nilai dalam urutan menaik.
Namun, kita dapat menggunakan diminishing=TRUE untuk mengurutkan nilai dalam urutan menurun:
#sort values in list in descending order
sort(unlist(some_list), decreasing= TRUE )
[1] 19 12 7 5 4 3 2
Perhatikan bahwa nilainya sekarang diurutkan dalam urutan menurun.
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 memperbaikinya di R: argumen tidak valid
Cara memperbaiki di R: penggantian memiliki panjang nol