【发布时间】:2018-09-24 13:33:00
【问题描述】:
您好,我想问一下如何使用 Monte Carlo Simulation 抽取 50 个虹膜数据实例(其中包含 150 个实例)? 任何想法? 非常感谢
【问题讨论】:
-
iris[sample.int(nrow(iris),50),]?不过,您的问题非常广泛...
标签: r programming-languages simulation montecarlo
您好,我想问一下如何使用 Monte Carlo Simulation 抽取 50 个虹膜数据实例(其中包含 150 个实例)? 任何想法? 非常感谢
【问题讨论】:
iris[sample.int(nrow(iris),50),] ?不过,您的问题非常广泛...
标签: r programming-languages simulation montecarlo
这是在基础 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), ])
【讨论】:
我们可以使用sample_n from dplyr 选择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))
【讨论】: