Cara memperbaiki: kesalahan di eval(predvars, data, env): objek 'x' tidak ditemukan


Kesalahan yang mungkin Anda temui di R adalah:

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

Kesalahan ini terjadi ketika Anda mencoba menggunakan model regresi di R untuk memprediksi nilai respons bingkai data baru, namun nama kolom dalam bingkai data baru tidak cocok dengan nama kolom dalam bingkai data yang Anda gunakan sebelumnya. cocok dengan modelnya. .

Tutorial ini menjelaskan dengan tepat cara memperbaiki kesalahan ini.

Bagaimana cara mereproduksi kesalahan tersebut

Misalkan kita memasukkan model regresi linier sederhana ke dalam R:

 #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

Sekarang anggaplah kita mencoba menggunakan fungsi prediksi() untuk memprediksi nilai respons untuk bingkai data baru:

 #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

Kami menerima kesalahan karena bingkai data yang kami gunakan saat memasang model memiliki variabel prediktor bernama x , namun dalam bingkai data baru kami menamai variabel prediktor x1 .

Karena nama-nama ini tidak cocok, kami menerima pesan kesalahan.

Bagaimana cara memperbaiki kesalahan tersebut

Cara untuk memperbaiki kesalahan ini adalah dengan memastikan bahwa variabel prediktor dalam bingkai data baru memiliki nama yang sama.

Oleh karena itu kami akan memastikan untuk memberi nama variabel prediktif x di blok data baru:

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

Sekarang kita dapat menggunakan fungsi prediksi() untuk memprediksi nilai respons untuk bingkai data baru:

 #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

Kami berhasil memprediksi nilai y untuk bingkai data baru tanpa kesalahan apa pun karena nama kolomnya cocok.

Sumber daya tambahan

Tutorial berikut menjelaskan cara mengatasi kesalahan umum lainnya di R:

Cara memperbaiki di R: Nama tidak sesuai dengan nama sebelumnya
Cara memperbaikinya di R: panjang benda yang lebih panjang bukan kelipatan panjang benda yang lebih pendek
Cara memperbaikinya di R: kontras hanya dapat diterapkan pada faktor dengan 2 level atau lebih

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *