R - dplyr bootstrap 几个变量
R - dplyr bootstrap several variables
我正在尝试 bootstraping
和 dplyr
,我被一行简单的代码卡住了。
使用函数 bootstrap
,我发现 out 可以做到
library(dplyr)
library(broom)
mtcars %>% bootstrap(10) %>%
do(tidy(sample(.$cyl, 2)))
获得一个很好的直接输出
replicate x
(int) (dbl)
1 1 6
2 1 8
3 2 6
4 2 8
...
不过,如果能获得更多变量(列)就好了,但我不知道怎么做。
我想
mtcars %>% bootstrap(10) %>%
do(tidy(sample(., 2)))
或
mtcars %>% bootstrap(10) %>%
do(tidy(sample_n(2)))
会起作用,但不会。
知道如何对多个变量进行子集化吗?
假设我想得到 mpg
、cyl
和 disp
来得到类似
(输出)
replicate cyl mpg disp
(int) (dbl)
1 1 6 21 ...
2 1 4 22 ...
3 2 6 ...
4 2 8 ...
...
(我随机选择两种情况sample = 2
,我重复这个例程(bootstrap
)10次)。
正在使用
set.seed(123)
sapply(mtcars, function(v) sample(v,2))
您可以从 mtcars
的每一列中抽取 2 个值,但是这些列的抽样 彼此独立 (不确定这是否是您想要的 and/or 这是有道理的)。因此,使用 broom
的解决方案可能是:
mtcars %>%
bootstrap(10) %>%
do(tidy(sapply(., function(v) sample(v,2))))
另一方面,如果保留列之间的关系很重要,您可以使用类似
的东西
do.call("rbind",lapply(1:10, function(dum) mtcars[sample.int(nrow(mtcars), 2), ]))
我正在尝试 bootstraping
和 dplyr
,我被一行简单的代码卡住了。
使用函数 bootstrap
,我发现 out 可以做到
library(dplyr)
library(broom)
mtcars %>% bootstrap(10) %>%
do(tidy(sample(.$cyl, 2)))
获得一个很好的直接输出
replicate x
(int) (dbl)
1 1 6
2 1 8
3 2 6
4 2 8
...
不过,如果能获得更多变量(列)就好了,但我不知道怎么做。
我想
mtcars %>% bootstrap(10) %>%
do(tidy(sample(., 2)))
或
mtcars %>% bootstrap(10) %>%
do(tidy(sample_n(2)))
会起作用,但不会。
知道如何对多个变量进行子集化吗?
假设我想得到 mpg
、cyl
和 disp
来得到类似
(输出)
replicate cyl mpg disp
(int) (dbl)
1 1 6 21 ...
2 1 4 22 ...
3 2 6 ...
4 2 8 ...
...
(我随机选择两种情况sample = 2
,我重复这个例程(bootstrap
)10次)。
正在使用
set.seed(123)
sapply(mtcars, function(v) sample(v,2))
您可以从 mtcars
的每一列中抽取 2 个值,但是这些列的抽样 彼此独立 (不确定这是否是您想要的 and/or 这是有道理的)。因此,使用 broom
的解决方案可能是:
mtcars %>%
bootstrap(10) %>%
do(tidy(sapply(., function(v) sample(v,2))))
另一方面,如果保留列之间的关系很重要,您可以使用类似
的东西do.call("rbind",lapply(1:10, function(dum) mtcars[sample.int(nrow(mtcars), 2), ]))