我有一个包含30行和850列(功能)的数据框。 当我想使用带有插入符号和e1071包的svm或其他分类器时,我遇到了这个错误!
Error in terms.formula(formula, data = data) :
duplicated name 'X10Percentile' in data frame using '.'
test<-data.frame("w1"=c(1:6),"w1.1"=c(2:7),"w1"=c(3:8), "ta"=c("T","F","T","F","F","T"))
set.seed(100)
train <- createDataPartition(y=test$ta,p=0.6,list = FALSE)
TrainSet <- test[train,]
TestSet <- test[-train,]
trcontrol_rcv<- trainControl(method="cv", number=10)
svm_test<-svm(ta ~., data=TrainSet,trControl=trcontrol_rcv)
效果很好,不会出现错误。 正如我所看到的,当测试数据甚至具有完全相同的colname时,不会发生错误。 我想知道为什么这个错误“在条款错误。公式(公式,数据=数据): 数据框中使用“。”重复名称'X10Percentile'“发生在我的数据中,如何消除它? 提前谢谢。
答案 0 :(得分:0)
谢谢大家。幸运的是,我发现了这个错误的原因。 因为R认为变量是因素。因此它生成数据。框架(实际上是一个列表)。为了解决这个问题,我按照以下方式将其转换为数据数据;
test1<-sapply(test,function(x) as.numeric(as.character(x)))
&#13;
答案 1 :(得分:0)
对于我这不是解决方案,我有一个LargeMatrix作为仅包含数字类型向量的对象。
问题是某些dimnames(MyLargeMatrix)
被复制了。我更改了它们,错误消失了。