R 测试分类列

R test categorical column

我想在插入符号(或其他方法)中使用 createDataPartition 创建测试集,我可以根据数据集中的标签列来执行此操作。 但我的额外要求是我的数据有一个分类列(例如:ID 的值为 ID1,ID2 ....ID10,用于数据集中的示例)我希望所有具有特定 ID 的观察结果都应该在训练集中或在测试集。怎么做?

此解决方案不使用插入符号,但我认为它可以满足您的需求。 使用 dplyr 根据 IDdata.frame 进行分组,然后随机为每个组分配一个 0/​​1 标签。然后您可以基于它进行子集化。

#very small sample data set
dat <- data.frame(id=sample(c('a', 'b', 'c', 'd', 'e'), size = 25, replace =T), 
                  val1=rnorm(25), val2=rnorm(25) )

dat2 <- dat %>% group_by(id) %>% mutate(label = rbinom(1, 1, 0.7) )

train <- subset(dat2, label==1)
test  <- subset(dat2, label==0)