我总是得到这个错误:Math.factor中的错误(c(1L,3L,4L,:'round'对于以下代码的因素没有意义:
C1<-train_data[,m]
C2<-as.factor(C1)
class_values<-C2
train_data <- train_data[,-m]
control <- trainControl(method="repeatedcv", number=5, repeats=1)
train_model <-train(train_data,class_values,method='nb',trControl=control)
我试图把:C2 = as.factor(as.numeric(as.character(C1)),但没有解决。 C1是1到5的数字数据。
答案 0 :(得分:0)
对于四舍五入:你应该这样做:
df <- data.frame(a = factor(c(1.1,2.2,3.3)))
df$b = round(as.numeric(levels(df$a)[df$a]))
或使用data.table框架:
require(data.table)
setDT(df)
df[, b:= round(as.numeric(levels(a)[a]))]
之后,我们需要了解您的职能是什么,以了解错误的原因...... 希望它有所帮助。