Nasıl düzeltilir: eval(predvars, data, env) hatası: 'x' nesnesi bulunamadı


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

 Error in eval(predvars, data, env): object 'x' not found 

Bu hata, yeni bir veri çerçevesinin yanıt değerlerini tahmin etmek için R’de bir regresyon modeli kullanmaya çalıştığınızda ortaya çıkar, ancak yeni veri çerçevesindeki sütun adları, eskiden kullandığınız veri çerçevesindeki sütun adlarıyla eşleşmez. modele uygun. .

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

Hata nasıl yeniden oluşturulur?

R’ye basit bir doğrusal regresyon modeline uyduğumuzu varsayalım:

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

#fit linear regression model to data
model <- lm(y ~ x, data=data)

#view summary of model
summary(model)

Call:
lm(formula = y ~ x, data = data)

Residuals:
    Min 1Q Median 3Q Max 
-2.1613 -0.7500 0.5000 0.9355 1.5161 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept) 5.5161 0.9830 5.611 0.00137 **
x 0.7742 0.1858 4.167 0.00590 **
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.463 on 6 degrees of freedom
Multiple R-squared: 0.7432, Adjusted R-squared: 0.7004 
F-statistic: 17.37 on 1 and 6 DF, p-value: 0.005896

Şimdi yeni bir veri çerçevesi için yanıt değerlerini tahmin etmek amacıyla tahmin() işlevini kullanmaya çalıştığımızı varsayalım:

 #define new data frame
new_data <- data. frame (x1=c(4, 5, 7, 8, 9))

#attempt to predict y values for new data frame
predict(model, newdata=new_data)

Error in eval(predvars, data, env): object 'x' not found

Modeli uydururken kullandığımız veri çerçevesinin x adında bir yordayıcı değişkeni olması nedeniyle hata alıyoruz, ancak yeni veri çerçevesinde yordayıcı değişkeni x1 olarak adlandırdık.

Bu isimler eşleşmediği için hata alıyoruz.

Hata nasıl düzeltilir?

Bu hatayı düzeltmenin yolu, yeni veri çerçevesindeki tahmin değişkeninin aynı ada sahip olmasını sağlamaktır.

Bu nedenle yeni veri bloğunda tahmin değişkeni x’i adlandırdığımızdan emin olacağız:

 #define new data frame
new_data <- data. frame (x=c(4, 5, 7, 8, 9)) 

Artık yeni veri çerçevesinin yanıt değerlerini tahmin etmek için tahmin() işlevini kullanabiliriz:

 #predict y values for new data frame
predict(model, newdata=new_data)

        1 2 3 4 5 
 8.612903 9.387097 10.935484 11.709677 12.483871

Sütun adları eşleştiği için yeni veri çerçevesi için y değerlerini hatasız bir şekilde başarılı bir şekilde tahmin edebiliyoruz.

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: Daha uzun bir nesnenin uzunluğu, daha kısa bir nesnenin uzunluğunun katı değildir
R’de nasıl düzeltilir: kontrastlar yalnızca 2 veya daha fazla seviyeye sahip faktörlere uygulanabilir

Yorum ekle

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