R'de nasıl düzeltilir: hata: işlevsiz bir uygulama uygulanmaya çalışılıyor


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

 Error: attempt to apply non-function

Bu hata genellikle R’deki değerleri çarpmaya çalıştığınızda ancak çarpma işaretini ( * ) eklemeyi unuttuğunuzda ortaya çıkar.

Bu eğitimde, bu hatanın iki farklı senaryoda tam olarak nasıl ele alınacağı açıklanmaktadır.

Senaryo 1: Veri çerçevesi çarpımındaki hatayı çözün

R’de aşağıdaki veri çerçevesini oluşturduğumuzu varsayalım:

 #create data frame
df <- data. frame (x=c(1, 2, 6, 7),
                 y=c(3, 5, 5, 8))

#view data frame
df

  xy
1 1 3
2 2 5
3 6 5
4 7 8

Şimdi x sütununun 10 ile çarpımına eşit yeni bir sütun oluşturmaya çalıştığımızı varsayalım:

 #attempt to create new column
df$x_times_10 <- df$x(10)

Error: attempt to apply non-function

Çarpma işaretini ( * ) eklemeyi unuttuğumuz için hata alıyoruz.

Bu hatayı çözmek için çarpma işaretini eklemeniz gerekir:

 #create new column
df$x_times_10 <- df$x*(10)

#view updated data frame
df

  xy x_times_10
1 1 3 10
2 2 5 20
3 6 5 60
4 7 8 70

Senaryo 2: Vektör çarpma hatasını çözün

R’de iki vektör oluşturduğumuzu ve bunların karşılık gelen elemanlarını birlikte çarpmaya çalıştığımızı varsayalım:

 #create two vectors
x <- c(1, 2, 2, 2, 4, 5, 6)
y <- c(5, 6, 8, 7, 8, 8, 9)

#attempt to multiply corresponding elements in vectors
(x)(y)

Error: attempt to apply non-function

Çarpma işaretini eklemediğimiz için hata alıyoruz.

Bu hatayı çözmek için çarpma işaretini eklemeniz gerekir:

 #multiply corresponding elements in vectors
(x)*(y)

[1] 5 12 16 14 32 40 54

Bu sefer hiçbir hata üretilmediğini 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:

“Koşulun uzunluğu > 1 ve yalnızca ilk öğe kullanılacak” sorununu düzeltme
Nasıl düzeltilir? İkili operatörün sayısal olmayan bağımsız değişkeni
Nasıl düzeltilir? dim(X) pozitif uzunluğa sahip olmalıdır
Nasıl düzeltilir? Kullanılmayan bağımsız değişkenlerin seçilmesinde hata

Yorum ekle

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