>

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')

test_set 의 3 열을 예측하고 싶습니다 하지만 계속

Error in eval(predvars, data, env) : object 'Rm' not found

test_set[3] 를 지정하더라도   test_set[1] 가 아님   Rm 를 포함하는

열 이름은 다음과 같습니다. Rm LstatMedv .

test_set[3]  그리고 test_set[2]  다음과 같은 오류가 발생합니다 :

Error in eval(predvars, data, env) : object Rm not found

test_set[1]  제공합니다 :

Error in eval(predvars, data, env) : object 'Lstat' not found

다음을 시도했습니다 :

<올>
  • names(test_set) <- c('Rm', 'Lstat','Medv') : 명시 적으로 이름을 바꿨습니다.
  • is.data.frame(test_set) : test_set이 데이터 프레임인지 확인했습니다.
    • 답변 # 1

      다음 코드로 문제를 해결했습니다

      y_pred = predict(classifier, newdata = test_set[-3], type ='class')
      
      

      https://www.rdocumentation.org/packages/rpart/versions/4.1-13/topics/predict.rpart R 문서에서 인용

      "newdata : 예측이 필요한 값을 포함하는 데이터 프레임. 수식 (오브젝트)의 오른쪽에 참조 된 예측 변수는 newdata에 이름으로 표시되어야합니다. 누락 된 경우 적합치가 반환됩니다."

    • 답변 # 2

      이 링크의 자습서를 참조하십시오 : eval (predvars, data, env) 오류

      우리는 두 가지 점을주의해야합니다 :

      <올>

      data.frame 를 사용하지 않음  새 개체에서 :

      predict(my_mdl, newdata)
      Error in eval(predvars, data, env) : 
         numeric 'envir' arg not of length one
      
      

      새 데이터 프레임에서 동일한 이름을 사용하지 않는 경우 :

      newdf2 <- data.frame(newdata)
      predict(my_mdl, newdf2)
      Error in eval(expr, envir, enclos) : object 'disp' not found
      
      

    관련 자료

  • 이전 Windows Batch 스크립트를 사용하여 FOR 루프에서 계산
  • 다음 javascript - Excel에서 데이터 가져 오기 및 Chartjs에서 사용