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

Yorum ekle

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