So beheben sie: fehler in eval(predvars, data, env): objekt „x“ nicht gefunden
Ein Fehler, der in R auftreten kann, ist:
Error in eval(predvars, data, env): object 'x' not found
Dieser Fehler tritt auf, wenn Sie versuchen, ein Regressionsmodell in R zu verwenden, um die Antwortwerte eines neuen Datenrahmens vorherzusagen, die Spaltennamen im neuen Datenrahmen jedoch nicht mit den Spaltennamen im Datenrahmen übereinstimmen, die Sie zuvor verwendet haben zum Modell passen. .
In diesem Tutorial wird genau erklärt, wie Sie diesen Fehler beheben können.
So reproduzieren Sie den Fehler
Angenommen, wir passen ein einfaches lineares Regressionsmodell in R an:
#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
Nehmen wir nun an, wir versuchen, die Funktion Predict() zu verwenden, um Antwortwerte für einen neuen Datenrahmen vorherzusagen:
#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
Wir erhalten eine Fehlermeldung, weil der Datenrahmen, den wir beim Anpassen des Modells verwendet haben, eine Prädiktorvariable mit dem Namen x hatte, im neuen Datenrahmen haben wir die Prädiktorvariable jedoch x1 genannt.
Da diese Namen nicht übereinstimmen, erhalten wir eine Fehlermeldung.
So beheben Sie den Fehler
Um diesen Fehler zu beheben, stellen Sie einfach sicher, dass die Prädiktorvariable im neuen Datenrahmen denselben Namen hat.
Wir werden daher darauf achten, die Vorhersagevariable x im neuen Datenblock zu benennen:
#define new data frame
new_data <- data. frame (x=c(4, 5, 7, 8, 9))
Wir können jetzt die Funktion Predict() verwenden, um die Antwortwerte für den neuen Datenrahmen vorherzusagen:
#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
Da die Spaltennamen übereinstimmen, können wir die Y-Werte für den neuen Datenrahmen erfolgreich und fehlerfrei vorhersagen.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in R beheben können:
So beheben Sie das Problem in R: Namen stimmen nicht mit vorherigen Namen überein
So beheben Sie das Problem in R: Die Länge eines längeren Objekts ist kein Vielfaches der Länge eines kürzeren Objekts
So korrigieren Sie in R: Kontraste können nur auf Faktoren mit 2 oder mehr Ebenen angewendet werden