R 测试分类列
R test categorical column
我想在插入符号(或其他方法)中使用 createDataPartition
创建测试集,我可以根据数据集中的标签列来执行此操作。
但我的额外要求是我的数据有一个分类列(例如:ID 的值为 ID1,ID2 ....ID10,用于数据集中的示例)我希望所有具有特定 ID 的观察结果都应该在训练集中或在测试集。怎么做?
此解决方案不使用插入符号,但我认为它可以满足您的需求。
使用 dplyr 根据 ID
对 data.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)
我想在插入符号(或其他方法)中使用 createDataPartition
创建测试集,我可以根据数据集中的标签列来执行此操作。
但我的额外要求是我的数据有一个分类列(例如:ID 的值为 ID1,ID2 ....ID10,用于数据集中的示例)我希望所有具有特定 ID 的观察结果都应该在训练集中或在测试集。怎么做?
此解决方案不使用插入符号,但我认为它可以满足您的需求。
使用 dplyr 根据 ID
对 data.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)