eval(predvars,data,env)中的错误:在RandomForest函数中找不到对象“示例”

时间:2020-05-06 15:30:17

标签: r eval random-forest

我只是在玩随机森林,但我似乎遇到了问题。当我尝试使用randomForest()函数时,它返回错误:Error in eval(predvars, data, env) : object '180018R' not found。这是最新的(相关)代码行,后跟structure()输出。

install.packages("randomForest")

# Random forest

data <- as.data.frame(pattern_mat)
str(data)

# Response variable is "Response" Column 313
data$Response <- as.factor(data$Response)
table(data$Response)

### Data Partition
set.seed(123)
ind <- sample(2, nrow(data), replace=TRUE, prob=(c(0.7, 0.3)))
train <- data[ind==1,]
test <- data[ind==2,]

### Random Forest
library(randomForest)
set.seed(222)
rf <- randomForest(Response~., data = train)

结构信息 *由于不必要,我缩短了输出。

> str(train)
'data.frame':   145 obs. of  313 variables:
 $ 180018R : num  1 0 0 0 0 0 0 0 0 0 ...
 $ 217220R : num  1 0 0 0 0 0 0 0 0 0 ...
 $ 217300R : num  1 0 0 0 0 0 0 0 0 0 ...
 $ 281722R : num  0 1 1 1 1 1 1 1 1 0 ...
 $ 681714R : num  0 1 1 1 1 1 1 1 1 0 ...
 $ 281730R : num  0 1 1 1 1 1 1 1 1 0 ...
 $ 681715R : num  0 1 1 1 1 1 1 1 1 0 ...
 $ 411113  : num  0 0 0 0 0 0 0 0 0 1 ...
 $ 478105  : num  0 0 0 0 0 0 0 0 0 1 ...
     :        :   : : : : : : : : : :
     :        :   : : : : : : : : : :
     :        :   : : : : : : : : : :
 $ 641112  : num  0 0 0 0 0 0 0 0 0 0 ...
 $ 641170  : num  0 0 0 0 0 0 0 0 0 0 ...
 $ 641370  : num  0 0 0 0 0 0 0 0 0 0 ...
 $ 641611  : num  0 0 0 0 0 0 0 0 0 0 ...
 $ 645342  : num  0 0 0 0 0 0 0 0 0 0 ...
  [list output truncated]

因此您可以看到错误:Error in eval(predvars, data, env) : object '180018R' not found提到 180018R ,这是第一列的名称。

有人知道该怎么办吗?

1 个答案:

答案 0 :(得分:5)

据我所知,问题在于列的名称以数字开头,这不是R中的最佳做法(尽管允许),而且我猜randomForest无法正确使用{{1}处理它} 句法。

尝试重命名所有列,以便它们以诸如~ .之类的通用字母开头,然后查看您的函数现在是否可以正常工作。这是一个可重现的示例,证明了这一点。

V