makeClassifTask 中的错误 - 要加入的列必须指定“on=”

问题描述

在这里收到来自 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() 找不到您的目标列。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...