วิธีแก้ไข: ข้อผิดพลาดใน eval (predvars, data, env): ไม่พบวัตถุ 'x'
ข้อผิดพลาดที่คุณอาจพบใน R คือ:
Error in eval(predvars, data, env): object 'x' not found
ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามใช้แบบจำลองการถดถอยใน R เพื่อทำนายค่าการตอบสนองของกรอบข้อมูลใหม่ แต่ชื่อคอลัมน์ในกรอบข้อมูลใหม่ไม่ตรงกับชื่อคอลัมน์ในกรอบข้อมูลที่คุณใช้ พอดีกับรุ่น .
บทช่วยสอนนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดนี้อย่างชัดเจน
วิธีการทำซ้ำข้อผิดพลาด
สมมติว่าเราใส่โมเดลการถดถอยเชิงเส้นอย่างง่ายใน 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
ตอนนี้ สมมติว่าเรากำลังพยายามใช้ฟังก์ชัน ทำนาย () เพื่อทำนายค่าการตอบสนองสำหรับกรอบข้อมูลใหม่:
#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
เราได้รับข้อผิดพลาดเนื่องจากกรอบข้อมูลที่เราใช้เมื่อปรับโมเดลให้เหมาะสมมีตัวแปรทำนายชื่อ x แต่ในกรอบข้อมูลใหม่เราตั้งชื่อตัวแปรทำนาย x1
เนื่องจากชื่อเหล่านี้ไม่ตรงกัน เราจึงได้รับข้อผิดพลาด
วิธีการแก้ไขข้อผิดพลาด
วิธีแก้ไขข้อผิดพลาดนี้คือเพียงตรวจสอบให้แน่ใจว่าตัวแปรทำนายในกรอบข้อมูลใหม่มีชื่อเดียวกัน
ดังนั้นเราจะตรวจสอบให้แน่ใจว่าได้ตั้งชื่อตัวแปรทำนาย x ในบล็อกข้อมูลใหม่:
#define new data frame
new_data <- data. frame (x=c(4, 5, 7, 8, 9))
ตอนนี้เราสามารถใช้ฟังก์ชัน คาดการณ์() เพื่อทำนายค่าการตอบสนองสำหรับกรอบข้อมูลใหม่:
#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
เราสามารถทำนายค่า y สำหรับกรอบข้อมูลใหม่ได้สำเร็จโดยไม่มีข้อผิดพลาดเนื่องจากชื่อคอลัมน์ตรงกัน
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้อธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่น ๆ ใน R:
วิธีแก้ไขใน R: ชื่อไม่ตรงกับชื่อก่อนหน้า
วิธีแก้ไขใน R: ความยาวของวัตถุที่ยาวกว่าไม่ใช่ผลคูณของความยาวของวัตถุที่สั้นกว่า
วิธีแก้ไขใน R: คอนทราสต์ใช้ได้กับปัจจัยที่มี 2 ระดับขึ้นไปเท่านั้น