我在尝试对排列进行分层时遇到问题。
我的数据如下所示:
gender party value
1 F Democrat 762
2 M Democrat 484
3 F Independent 327
4 M Independent 239
5 F Republican 468
6 M Republican 477
我只是想做的是分层随机排列party
library(dplyr)
md %>%
group_by(party) %>%
mutate(perm = sample(gender))
这给了我一个正确的随机排列
gender party value perm
1 F Democrat 762 M
2 M Democrat 484 F
3 F Independent 327 M
4 M Independent 239 F
5 F Republican 468 F
6 M Republican 477 M
我想要的是多次重复这个操作。遵循此处提出的解决方案(非分层排列)
library(broom)
md %>%
bootstrap(100) %>%
do(data.frame(., treat = sample(.$gender, 6, replace=TRUE)))
但是,我没有引入一个group_by
论点。
md %>%
bootstrap(10) %>%
group_by(party) %>%
do(data.frame(., treat = sample(.$gender, 6, replace=TRUE)))
任何想法 ?
此外,bootstrap
功能实际上很慢。知道为什么吗?以及使其更快的任何解决方案?我们可以以某种方式并行化它吗?
library(reshape2)
M <- as.table(rbind(c(762, 327, 468), c(484, 239, 477)))
dimnames(M) <- list(gender = c("F", "M"),
party = c("Democrat","Independent", "Republican"))
md = melt(M)