您好我想问一下如何使用蒙特卡罗模拟来抽取50个虹膜数据实例(包含150个实例)? 任何的想法? 非常感谢
答案 0 :(得分:3)
我们可以使用dplyr中的sample_n
来选择50行替换。
# Set seed for reproducibility
set.seed(12800)
library(dplyr)
library(purrr)
iris_sub <- iris %>% sample_n(size = 50, replace = TRUE)
在这里,我展示了一种方法,可以使用purrr包中的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), ])