我正在尝试在R中使用随机森林方法。我需要读取一个txt文件(训练集)。
dataset<- read.table(path1,header=TRUE,sep=",")
列名是数字(即1005_at),因此它们会自动转换,加R,即R(即X1005_at)。为了解决这个问题,我做了:
colnames(dataset)<-gsub("^[X](.*)","\\1",colnames(dataset))
现在名字还可以,但是当我运行随机森林时:
model.rf <- randomForest(class ~ ., data=dataset, importance=TRUE,keep.forest=T, ntree=5, do.trace=T)
我有这个错误:
Error in eval(expr, envir, enclos) : object '1005_at' not found
如果我在原始数据集上运行随机森林(不修改名称,因此使用X1005_at),则不会发生此错误。为什么?我该如何解决?
答案 0 :(得分:0)
使用read.csv
,因为它已具有header
和sep
的相应默认值,并使用check.names=FALSE
参数来避免损坏名称。
formula
的{{1}}方法不接受输入数据框中的非语法名称。改为使用默认方法。
因此我们有:
randomForest