[英]R: how to write a function that samples given the probability
我寫了一個函數
p = c(0.4, 0.6)
myfun = function(p){
sample(1:2, 1, replace = TRUE, prob = p)
}
我想重復5次。
sapply(1:5, myfun)
但這給我一個錯誤
sample.int(長度(x),大小,替換,概率)中的錯誤:概率數不正確
您可以使用replicate
編寫函數。
myfun <- function(x, p, n, replace = TRUE) {
m <- replicate(n, sample(x, replace = replace, prob = p))
if(n == 1) c(m) else m
}
myfun(2, c(0.4, 0.6), 5)
# [,1] [,2] [,3] [,4] [,5]
# [1,] 1 1 2 2 2
# [2,] 2 2 2 1 2
myfun(2, c(0.4, 0.6), 1)
# [1] 2 1
您可以使用sample
函數對5個值進行采樣。
p <- c(0.4, 0.6)
sample(1:2, 5, replace = TRUE, prob = p)
# [1] 2 2 2 2 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.