由于我使用了许多不同算法的交叉验证,我决定自己构建以下函数:
crossFun <- function(myseed, vars, labels, par, tim, algo, len) {
set.seed(myseed)
multiFolds <- createMultiFolds(labels, k = par, times = tim)
cv_ctrl <- trainControl(method ='repeatedcv', number = par, repeats = tim, index = multiFolds)
cl <- makeCluster(3, type = 'SOCK')
registerDoSNOW(cl)
result <- train(x = vars, y = labels, method = algo, tuneLength = len, trControl = cv_ctrl)
stopCluster(cl)
return(result)
}
该功能确实有效,但结果是,我收到以下警告:
警告消息:不建议在tibble上设置行名称。
我找不到任何明确的解释。我尝试用不同的方式编写函数,但似乎没有任何东西可以消除这个消息。
任何想法意味着什么?
答案 0 :(得分:0)
tidyverse
方式鼓励不使用rownames。
您始终可以使用as.data.frame()
强制回到基础数据框。
鼓励的方法是使用tibble::rownames_to_column()
使rownames成为一个新变量。
请参阅this issue。