警告R中建立一个功能时
问题描述:
由于我使用的交叉验证与许多不同的算法,我决定给自己建了以下功能:警告R中建立一个功能时
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上设置行名。
我找不到任何明确的解释。我试着用不同的方式编写函数,但似乎没有任何东西可以摆脱这个信息。
任何想法是什么意思?
答
tidyverse
方式鼓励不使用rownames。 您总是可以用as.data.frame()
强制回到基础数据框。 鼓励的方式是使用tibble::rownames_to_column()
使rownames成为一个新变量。
请参阅this issue。
+0
我不确定我了解你。我之前读过这个问题,但没有看到它与我的功能有什么关系。 – Mark2Bra
+1
@ Mark2Bra您的警告与问题中相同。 “已弃用”意味着已将其从包中删除,并且您现在有警告,但未来版本中可能会出现错误(让您有时间更新代码)。 –
看来警告来自您要调用的某个函数。如果是这样,那么你可以做的事情就不多了,除非可能试着确定警报发生的位置。 'print(class(obj))',其中'obj'是一个对象,比如'multiFolds','cv_ctrl'等可能会有所帮助。 –