R 编程(Monte Carlo 模拟)
R programming (Monte Carlo Simulation)
你好我想问一下如何使用Monte Carlo 模拟抽取 50 个虹膜数据实例(其中包含 150 个实例)?
任何的想法?
非常感谢
我们可以使用 sample_n
从 dplyr 到 select 50 行替换。
# Set seed for reproducibility
set.seed(12800)
library(dplyr)
library(purrr)
iris_sub <- iris %>% sample_n(size = 50, replace = TRUE)
在这里,我展示了一种可以将此过程重复 1000 次的方法,使用 purrr 包中的 map_dfr
。最终结果是一个包含 50000 行的数据框。创建一个名为 Time
的新列来记录采样数。
iris_sample <- map_dfr(1:1000, ~iris %>%
sample_n(size = 50, replace = TRUE) %>%
mutate(Time = .x))
这是在 base 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), ])
你好我想问一下如何使用Monte Carlo 模拟抽取 50 个虹膜数据实例(其中包含 150 个实例)? 任何的想法? 非常感谢
我们可以使用 sample_n
从 dplyr 到 select 50 行替换。
# Set seed for reproducibility
set.seed(12800)
library(dplyr)
library(purrr)
iris_sub <- iris %>% sample_n(size = 50, replace = TRUE)
在这里,我展示了一种可以将此过程重复 1000 次的方法,使用 purrr 包中的 map_dfr
。最终结果是一个包含 50000 行的数据框。创建一个名为 Time
的新列来记录采样数。
iris_sample <- map_dfr(1:1000, ~iris %>%
sample_n(size = 50, replace = TRUE) %>%
mutate(Time = .x))
这是在 base 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), ])