【发布时间】:2016-09-17 16:09:20
【问题描述】:
我在理解如何正确使用 dplyr bootstrap 函数时遇到问题。
我想要的是从两个随机分配的组中生成引导分布并计算均值的差异,例如:
library(dplyr)
library(broom)
data(mtcars)
mtcars %>%
mutate(treat = sample(c(0, 1), 32, replace = T)) %>%
group_by(treat) %>%
summarise(m = mean(disp)) %>%
summarise(m = m[treat == 1] - m[treat == 0])
问题是我需要重复此操作100、1000 或更多次。
使用replicate,我可以做到
frep = function(mtcars) mtcars %>%
mutate(treat = sample(c(0, 1), 32, replace = T)) %>%
group_by(treat) %>%
summarise(m = mean(disp)) %>%
summarise(m = m[treat == 1] - m[treat == 0])
replicate(1000, frep(mtcars = mtcars), simplify = T) %>% unlist()
并得到分布
我真的不知道如何使用bootstraphere。我应该如何开始?
mtcars %>%
bootstrap(10) %>%
mutate(treat = sample(c(0, 1), 32, replace = T))
mtcars %>%
bootstrap(10) %>%
do(tidy(treat = sample(c(0, 1), 32, replace = T)))
它并没有真正起作用。我应该把bootstrap pip 放在哪里?
谢谢。
【问题讨论】:
-
是的!谢谢你。太棒了。那么你能解释一下吗,我必须在
do内创建一个data.frame吗?你能发表你的答案吗?再次感谢! -
当我们创建一个列'treat'时,我们用
data.frame包装它以获得作为data.frame的输出。.表示lhs的%>%上的数据集内容
标签: r dplyr statistics-bootstrap broom