Erreur dans la fonction eval(predvars, données, env) : l'objet 'Rm' ne trouve pas
dataset = read.csv('dataset/housing.header.binary.txt')
dataset1 = dataset[6] #higest positive correlation
dataset2 = dataset[13] #lowest negative correlation
dependentVal= dataset[14] #dependent value
new_dataset = cbind(dataset1,dataset2, dependentVal) # new matrix
#split dataset
#install.packages('caTools')
library(caTools)
set.seed(123) #this is needed to garantee that every run will produce the same output
split = sample.split(new_dataset, SplitRatio = 0.75)
train_set = subset(new_dataset, split == TRUE)
test_set = subset(new_dataset, split == FALSE)
#Fitting Decision Tree to training set
install.packages('rpart')
library(rpart)
classifier = rpart(formula = Medv ~ Rm + Lstat,
data = train_set)
#predicting the test set results
y_pred = predict(classifier, newdata = test_set[3], type ='class')
Je veux prédire la colonne 3 de l' test_set
, mais je reçois
Erreur dans la fonction eval(predvars, données, env) : l'objet 'Rm' ne trouve pas
Même si je spécifier test_set[3]
pas test_set[1]
qui contiennent Rm
Les noms de colonne sont comme suit: Rm
, Lstat
, et Medv
.
test_set[3]
et test_set[2]
donner le même message d'erreur suivant:
Erreur dans la fonction eval(predvars, données, env) : objet Rm pas trouvé
et test_set[1]
donne:
Erreur dans la fonction eval(predvars, données, env) : l'objet "Lstat' ne trouve pas
J'ai essayé ce qui suit:
names(test_set) <- c('Rm', 'Lstat','Medv')
: J'ai renommé explicitement.is.data.frame(test_set)
: j'ai vérifié si test_set est un dataframe.
- J'ai résolu le problème.
- J'ai eu un problème similaire, il est descendu à la fixation de la colonne des noms
Vous devez vous connecter pour publier un commentaire.
J'ai résolu le problème par le code suivant
https://www.rdocumentation.org/packages/rpart/versions/4.1-13/topics/predict.rpart
citation de R de la documentation
"newdata : bloc de données contenant les valeurs à laquelle les prévisions sont nécessaires. Les prédicteurs visées dans la partie droite de la formule(objet) doit être présente par son nom dans newdata. En cas de disparition, les valeurs ajustées sont renvoyés."
Veuillez consulter le tutoriel dans ce lien: Erreur dans la fonction eval(predvars, données, env)
Nous avons besoin de prendre soin de deux points:
Pas à l'aide d'un
data.frame
dans le nouvel objet:Ne pas utiliser le même nom dans le nouveau bloc de données: