R测试分类列

时间:2015-01-28 11:59:37

标签: r r-caret

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

1 个答案:

答案 0 :(得分:1)

此解决方案不使用插入符号,但我认为它可以满足您的需要。 使用dplyr根据data.frameID进行分组,然后为每个组随机分配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)