我想在插入符号(或其他方法)中使用createDataPartition
创建测试集,我可以根据数据集中的标签列创建测试集。
但我的附加要求是我的数据有一个分类列(例如:ID为ID1,ID2 ...... ID10,用于数据集中的示例)我希望所有具有特定ID的观察都应该在火车集中或在测试集。怎么做?
答案 0 :(得分:1)
此解决方案不使用插入符号,但我认为它可以满足您的需要。
使用dplyr根据data.frame
对ID
进行分组,然后为每个组随机分配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)