R'de nasıl onarılır: sort.int(x, na.last, azalan, …) hatası: 'x' atomik olmalıdır


R’yi kullanırken karşılaşabileceğiniz bir hata mesajı:

 Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...): 
  'x' must be atomic

Bu hata, bir listeyi sıralamaya çalıştığınızda ortaya çıkar.

Varsayılan olarak R yalnızca vektörler gibi atomik nesneleri sıralama yeteneğine sahiptir. Bu nedenle sort() işlevini bir listeyle kullanmak için öncelikle unlist() işlevini kullanmanız gerekir.

Aşağıdaki örnekte bu hatanın pratikte nasıl çözüleceği gösterilmektedir.

Hata nasıl yeniden oluşturulur?

Diyelim ki R’de aşağıdaki liste var:

 #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"

Şimdi listedeki değerleri sıralamaya çalıştığımızı varsayalım:

 #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

R’nin listeleri doğrudan sıralama yeteneği olmadığından hata alıyoruz.

Hata nasıl önlenir

Hatayı önlemek için öncelikle unlist() fonksiyonunu aşağıdaki gibi kullanmalısınız:

 #sort values in list
sort(unlist(some_list))

[1] 2 3 4 5 7 12 19

Listeyi sayısal bir vektöre dönüştüren ilk olarak unlist() yöntemini kullandığımız için değerler listesini hatasız bir şekilde başarıyla sıralayabildiğimizi unutmayın.

Varsayılan olarak R, değerleri artan sırada sıralar.

Ancak değerleri azalan düzende sıralamak için azalan=TRUE komutunu kullanabiliriz:

 #sort values in list in descending order
sort(unlist(some_list), decreasing= TRUE )

[1] 19 12 7 5 4 3 2

Değerlerin artık azalan düzende sıralandığını unutmayın.

Ek kaynaklar

Aşağıdaki eğitimlerde R’deki diğer yaygın hataların nasıl düzeltileceği açıklanmaktadır:

R’de nasıl düzeltilir: bağımsız değişkenler farklı sayıda satır içerir
R’de nasıl düzeltilir: kullanılmayan bağımsız değişkenlerin seçiminde hata
R’de nasıl düzeltilir: geçersiz argümanlar
R’de nasıl onarılır: değiştirmenin uzunluğu sıfırdır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir