Nasıl düzeltilir: strsplit(unitspec, ” “) hatası: karaktersiz argüman


R’de karşılaşabileceğiniz bir hata:

 Error in strsplit(df$my_column, split = "1"): non-character argument 

Bu hata genellikle R’de bir dizeyi bölmek için strsplit() işlevini kullanmaya çalıştığınızda, üzerinde çalıştığınız nesne bir dize olmadığında ortaya çıkar.

Bu eğitimde bu hatanın nasıl düzeltileceği tam olarak açıklanmaktadır.

Hata nasıl yeniden oluşturulur?

R’de aşağıdaki veri çerçevesine sahip olduğumuzu varsayalım:

 #create data frame
df <- data. frame (team=c('A', 'B', 'C'),
                 dots=c(91910, 14015, 120215))

#view data frame
df

  team points
1 A 91910
2 B 14015
3 C 120215

Şimdi “puan” sütunundaki değerleri 1 sayısının göründüğü yere göre bölmek için strsplit() işlevini kullanmaya çalıştığımızı varsayalım:

 #attempt to split values in points column
strsplit(df$points, split="1")

Error in strsplit(df$points, split = "1"): non-character argument

“points” değişkeni bir karakter olmadığı için hata alıyoruz.

Bu değişkenin sınıfını kontrol ederek bunu doğrulayabiliriz:

 #display class of "points" variable
class(df$points)

[1] "digital"

Bu değişkenin sayısal bir sınıfı olduğunu görebiliriz.

Hata nasıl düzeltilir?

Bu hatayı düzeltmenin yolu , strsplit() işlevini kullanmaya çalışmadan önce “points” değişkenini bir karaktere dönüştürmek için as.character () işlevini kullanmaktır:

 #split values in points column based on where 1 appears
strsplit(as. character (df$points), split="1")

[[1]]
[1990"

[[2]]
[1] "" "40" "5" 

[[3]]
[1] "" "202" "5"

Bu sefer “puan” sütunundaki her değeri başarıyla böldük çünkü “puanları” bir karaktere dönüştürmek için ilk önce as.character() fonksiyonunu kullandık.

Ek kaynaklar

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

R’de nasıl düzeltilir: Adlar önceki adlarla eşleşmiyor
R’de nasıl düzeltilir: sütun adlarından daha fazla sütun
R’de nasıl onarılır: değiştirmede X satır var, verilerde Y var

Yorum ekle

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