为什么这个错误发生“使用'.'的数据框中的重复名称?”

Why this error happen "duplicated name in data frame using '.'?

我有一个包含 30 行和 850 列(特征)的数据框。 当我想将 svm 或其他分类器与 caret 和 e1071 包一起使用时,我遇到了这个错误!

Error in terms.formula(formula, data = data) : 
  duplicated name 'X10Percentile' in data frame using '.'
即使我想使用 Boruta 等特征选择方法,我也会遇到同样的错误。 我仔细检查了我的功能,但一无所获。我想我必须在数据框中有相同的列名所以我创建了一个示例数据并检查如下:

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,也不会发生任何错误。 我想知道为什么这个错误“Error in terms.formula(formula, data = data) : 在数据框中使用“.”的重复名称 'X10Percentile' 发生在我的数据中,我该如何消除它? 提前谢谢你。

谢谢大家。幸运的是,我找到了这个错误的原因。 因为 R 将变量视为因素。因此它制作了一个数据。 frame(其实是一个列表)。为了解决这个问题,我通过以下方式将其转换为数据数字;

test1<-sapply(test,function(x) as.numeric(as.character(x)))

对我来说这不是解决方案,我有一个 LargeMatrix 作为仅包含数字类型向量的对象。

问题是一些 dimnames(MyLargeMatrix) 重复了。 我更改了它们,错误消失了。