如何按特征值过滤 mlr3 任务数据集
How to filter mlr3 task dataset by feature value
我有一个 mlr3 任务,我有这样的数据集:
数据集“全部”
all <- data.frame(v1 = c("a", "b"),
v2 = c(1, 2),
data = c("test", "train"))
library(mlr3)
task <- TaskClassif$new("loan", all, target = "v1")
如何按“数据”列值“火车”过滤任务?
我尝试了 task$filter(data == "train") 和许多其他组合,但没有用。
dput(task)
<environment>
str(task)
Classes 'TaskClassif', 'TaskSupervised', 'Task', 'R6' <TaskClassif:loan>
有一个as.data.table
方法
methods(class = 'Task')
#[1] as_task as_tasks as.data.table
因此,我们可以将其转换为data.table
,并使用data.table的方法进行子集化
library(data.table)
as.data.table(task)[data == 'train']
# v1 data v2
#1: b train 2
或者可以提取data
task$data()[data == 'test']
# v1 data v2
#1: a test 1
或创建一个新实例
tasktrain <- TaskClassif$new("loantrain",
task$data()[data == 'train'], target = "v1")
tasktrain$data()
# v1 data v2
#1: b train 2
我有一个 mlr3 任务,我有这样的数据集:
数据集“全部”
all <- data.frame(v1 = c("a", "b"),
v2 = c(1, 2),
data = c("test", "train"))
library(mlr3)
task <- TaskClassif$new("loan", all, target = "v1")
如何按“数据”列值“火车”过滤任务?
我尝试了 task$filter(data == "train") 和许多其他组合,但没有用。
dput(task)
<environment>
str(task)
Classes 'TaskClassif', 'TaskSupervised', 'Task', 'R6' <TaskClassif:loan>
有一个as.data.table
方法
methods(class = 'Task')
#[1] as_task as_tasks as.data.table
因此,我们可以将其转换为data.table
,并使用data.table的方法进行子集化
library(data.table)
as.data.table(task)[data == 'train']
# v1 data v2
#1: b train 2
或者可以提取data
task$data()[data == 'test']
# v1 data v2
#1: a test 1
或创建一个新实例
tasktrain <- TaskClassif$new("loantrain",
task$data()[data == 'train'], target = "v1")
tasktrain$data()
# v1 data v2
#1: b train 2