Nasıl düzeltilir: yabancı işlev çağrısında do_one(nmeth): na/nan/inf hatası (arg 1)
R’de karşılaşabileceğiniz bir hata:
Error in do_one(nmeth): NA/NaN/Inf in foreign function call (arg 1)
Bu hata , R’de k-ortalamalı kümeleme gerçekleştirmeye çalıştığınızda ancak kullandığınız veri çerçevesinde bir veya daha fazla eksik değer olduğunda ortaya çıkar.
Bu eğitimde bu hatanın nasıl düzeltileceği tam olarak açıklanmaktadır.
Hata nasıl yeniden oluşturulur?
Diyelim ki R’de ikinci satırında eksik bir değer bulunan aşağıdaki veri çerçevesine sahibiz:
#create data frame df <- data. frame (var1=c(2, 4, 4, 6, 7, 8, 8, 9, 9, 12), var2=c(12, 14, 14, 8, 8, 15, 16, 9, 9, 11), var3=c(22, NA, 23, 24, 28, 23, 19, 16, 12, 15)) row. names (df) <- LETTERS[1:10] #view data frame df var1 var2 var3 At 2 12 22 B 4 14 NA C 4 14 23 D 6 8 24 E 7 8 28 F 8 15 23 G 8 16 19 H 9 9 16 I 9 9 12 D 12 11 15
Bu veri çerçevesinde k-means kümelemesini gerçekleştirmek için kmeans() fonksiyonunu kullanmaya çalışırsak bir hata alırız:
#attempt to perform k-means clustering with k = 3 clusters km <- kmeans(df, centers = 3 ) Error in do_one(nmeth): NA/NaN/Inf in foreign function call (arg 1)
Hata nasıl düzeltilir?
Bu hatayı düzeltmenin en kolay yolu, eksik değerleri olan satırları veri çerçevesinden kaldırmak için na.omit() işlevini kullanmaktır:
#remove rows with NA values df <- na. omitted (df) #perform k-means clustering with k = 3 clusters km <- kmeans(df, centers = 3) #view results km K-means clustering with 3 clusters of sizes 4, 3, 2 Cluster means: var1 var2 var3 1 5.5 14.250000 21.75000 2 10.0 9.666667 14.33333 3 6.5 8.000000 26.00000 Vector clustering: ACDEFGHIJ 1 1 3 3 1 1 2 2 2 Within cluster sum of squares by cluster: [1] 46.50000 17.33333 8.50000 (between_SS / total_SS = 79.5%) Available components: [1] "cluster" "centers" "totss" "withinss" "tot.withinss" [6] "betweenss" "size" "iter" "ifault"
Eksik değerlere sahip satırları veri çerçevesinden kaldırdığımızda k-means kümeleme algoritmasının başarılı bir şekilde çalıştığını unutmayın.
Bonus: R’de k-means kümelenmesine yönelik eksiksiz bir adım adım kılavuz
Ek kaynaklar
R’de nasıl düzeltilir: Zorlamayla ortaya çıkan NA’lar
R’de nasıl onarılır: sınırların dışında dizin
R’de nasıl düzeltilir: daha uzun bir nesnenin uzunluğu, daha kısa bir nesnenin uzunluğunun katı değildir