我写了一个函数
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),大小,替换,概率):不正确 概率数
答案 0 :(得分:0)
您可以使用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
答案 1 :(得分:0)
您可以使用sample
函数对5个值进行采样。
p <- c(0.4, 0.6)
sample(1:2, 5, replace = TRUE, prob = p)
# [1] 2 2 2 2 1