Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:如何在给定概率的情况下编写采样函数_R_Sapply - Fatal编程技术网

R:如何在给定概率的情况下编写采样函数

R:如何在给定概率的情况下编写采样函数,r,sapply,R,Sapply,我写了一个函数 p = c(0.4, 0.6) myfun = function(p){ sample(1:2, 1, replace = TRUE, prob = p) } 我想重复5次 sapply(1:5, myfun) 但这给了我一个错误 sample.intlengthx中出错,大小,替换,问题:不正确 概率数 您可以使用replicate编写函数 您可以使用sample函数对5个值进行采样 p <- c(0.4, 0.6) sample(1:2, 5, replac

我写了一个函数

p = c(0.4, 0.6)
myfun = function(p){
    sample(1:2, 1, replace = TRUE, prob = p)
}
我想重复5次

sapply(1:5, myfun)
但这给了我一个错误

sample.intlengthx中出错,大小,替换,问题:不正确 概率数


您可以使用replicate编写函数

您可以使用sample函数对5个值进行采样

p <- c(0.4, 0.6)
sample(1:2, 5, replace = TRUE, prob = p)
# [1] 2 2 2 2 1

也许你想从1:2开始取样?否则prob的长度必须为10…啊,是的。很抱歉我想从1:2取样,但我仍然得到相同的错误。在你的案例中没有使用replicate5,sample2,replace=TRUE,prob=c0.4,0.6p。Sapply每次都会给myfun提供1到5个。所以如果我想用sapply来做这个,我试着用sapply 1:5,我的Funp,但这也不行。
p <- c(0.4, 0.6)
sample(1:2, 5, replace = TRUE, prob = p)
# [1] 2 2 2 2 1