簡體   English   中英

在R中使用for循環的Replicate()

[英]Replicate() using for loop in R

我想在R中創建大量樣本並將其存儲在變量中。 我做了一些研究,可能最好的方法是使用copy()

record <- replicate(5000, sample(c(0,1), size = 60, replace = T,prob=c(0.9,0.1)))

我的問題是我該如何使用for循環? 我可以使用for循環創建5000個樣本,但是如何存儲它們呢?

x <- 'something here' #I want to store them in x

for (i in 1:5000)
    {record <- sample(c(0,1), size = 60, replace = T,prob=c(0.9,0.1))
    'x += record'}

編輯:X + =行記錄令人困惑。 這是我最好的解釋,這是在python中創建的一個列表,該列表中還有5000個其他列表,每個列表包含一個不同的示例

我看不到使用for循環的意義。 也不需要replicate

您可以直接使用繪制5000 * 60獨立樣本

smpl <- sample(c(0, 1), size = 60 * 5000, replace = TRUE, prob = c(0.9, 0.1))

如果要將smpl存儲在矩陣中,則可以將向量重鑄為matrix ,例如

mat <- matrix(smpl, ncol = 5000)

這將為您提供60 x 5000矩陣,其中每列包含從p(0) = 0.9p(1) = 0.1的分布中抽取的5000隨機樣本。

這將比使用for循環或replicate更快。

關於什么

x <- list() # or x <- c() or x <- data.frame()

for (i in 1:5000){
    record <- sample(c(0,1), size = 60, replace = T,prob=c(0.9,0.1))
    x[[i]] <- record # or x <- c(x, record) or x <- rbind(x, record)
}

但是,是的,如上所述,不使用循環可能會更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM