كيفية الإصلاح: خطأ في 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: لا يمكن تطبيق التباينات إلا على العوامل ذات المستويين أو أكثر