我是 R 的新手,所以请耐心等待。
所以我试图以这样一种方式执行分层抽样,它将使用 2 列地层,但两列都满足特定值。
这是我的代码:
library(splitstackshape)
set.seed(1)
dat1 <- data.frame(ID = 1:100,
A = sample(c("AA", "BB", "CC", "DD", "EE"), 100, replace = TRUE),
B = sample(c(30,40,50),100,replace = TRUE), C = sample(c(1:10),100,replace = TRUE),
D = sample(c("CA", "NY", "TX"), 100, replace = TRUE),
E = sample(c("M", "F"), 100, replace = TRUE))
stratified(dat1, c("B", "C"), 0.1, select = list(B = 30, C = c(8:10)))
据我了解,此函数首先生成大小为 10% 的层,然后从中选择满足条件 B=30 和 c 介于 8 到 10 之间的那些记录。
结果,地层的大小从最初的 10% 减少了。
我的问题是,有没有什么方法可以生成一个分层,该分层由其中 B 列的值为 30 而 C 列的值在 8 到 10 之间的记录组成,nrow()
结果样本的值为原始数据的 10%框架?
我正在使用stratified()
“splitstackshape”。如果stratified()
无法处理,是否还有其他可以执行此类操作的软件包?