问题描述
我在这里收到来自 MLR 包的 makeClassifTask() 的错误。
task = makeClassifTask(data = data[,2:20441],target='disease')
输入这个我得到这个错误。
提供的数据不是纯data.frame,而是来自类data.table,因此会被转换。
[.data.table
(data,target) 中的错误:
当 i 是 data.table(或字符向量)时,必须使用 'on=' 参数(参见 ?data.table),通过键入 x(即已排序,并标记为已排序,参见 ? setkey),或者通过在 x 和 i 之间共享列名(即自然连接)。由于 x 在 RAM 中排序,键控连接可能对非常大的数据具有进一步的速度优势。
如果有人能帮我,那就太好了。
解决方法
鉴于您没有提供数据,我只能做一些猜测并建议阅读 https://mlr3book.mlr-org.com/tasks.html 上的文档。
您似乎遗漏了数据集中可能是您的目标的第一列。因此 makeClassifTask()
找不到您的目标列。