R编程(蒙特卡罗模拟)

时间:2018-04-14 09:03:02

标签: r programming-languages simulation montecarlo

您好我想问一下如何使用蒙特卡罗模拟来抽取50个虹膜数据实例(包含150个实例)? 任何的想法? 非常感谢

2 个答案:

答案 0 :(得分:3)

我们可以使用中的sample_n来选择50行替换。

# Set seed for reproducibility
set.seed(12800)

library(dplyr)
library(purrr)

iris_sub <- iris %>% sample_n(size = 50, replace = TRUE)

在这里,我展示了一种方法,可以使用包中的map_dfr重复此过程1000次。最终结果是具有50000行的数据帧。创建了一个名为Time的新列,用于记录采样数。

iris_sample <- map_dfr(1:1000, ~iris %>%
                         sample_n(size = 50, replace = TRUE) %>%
                         mutate(Time = .x))

答案 1 :(得分:1)

这是在基地R中进行此操作的一种方法。

您可以使用

替换50行
iris[sample(1:nrow(iris), size = 50, replace = TRUE), ]

要制作一个列表,例如,包含50行替换的1000个样本,您可以使用lapply

iris_mc_samps <- lapply(1:1000, function(x) iris[sample(1:nrow(iris), size = 50, replace = TRUE), ])