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