首页 > 解决方案 > 如何检查任务中 row_id 和 order 变量的对齐情况?

问题描述

我生成了一个任务并分配了一个订单变量(“日期”)。因此,我可以访问以下元素:

task$row_idstask$col_roles$order

后者帮助我仔细检查排序变量的名称,因此我可以检索排序变量,例如通过task$data(cols = c("Date")).

现在,因为 row_ids 只保证是唯一的自然数(不一定是序列):我怎么能确定像这样的命令

Lookup<-tibble(task$data(cols = c("Date")), task$row_ids)

生成一个表,我以后可以使用它来恢复task$data()?中行的日期标识符 或者这是微不足道的,因为秩序受到建设的尊重?(我将订单角色分配给日期列)

标签: mlr3

解决方案


如果您只想拥有一个带有日期的行 ID 的查找表,您可以通过以下方式获得:

task$data(cols = c(task$backend$primary_key, "Date"))

另请注意,task$data(..., ordered = TRUE)根据您的Date列自动重新排序数据,但ordered参数的默认值可能会在下一个版本中更改。如果您已经在处理有序任务(仍在开发中),请明确声明ordered = TRUE以确保安全。


推荐阅读