在 for 循环中运行函数

B. 赫恩斯

R 的新手并尝试将函数放入 for 循环中。当我有另一个函数时,该函数可以工作并且 for 循环可以工作,但是当我将它们放在一起时,我收到错误“缺少 TRUE/FALSE 需要的值”,而我以前不需要它。我的功能是:

roll <- function(){

die<- 1:20 # 20 sided die

dice <- sample(die, 2, replace=TRUE) # Roll the die twice

sum(dice) # Add results

}

我试图让它在将输出放入矩阵的同时运行 100 多次。也许我只是不太了解 for 循环的问题,但我是这样理解的:

for(i in 1:nrolls) { #nrolls=100

roll <- sample(die)

if(roll[i] >= 25) {

G_than <- 1

} else{

L_than <- 1

}

}

任何帮助,将不胜感激!

让-泽维尔雷诺

For 循环不是你应该在这种情况下使用的。

如果您想在这样的向量中获得结果,只需使用 sapply :

roll <- function(x){
    die<- 1:20 # 20 sided die
    dice <- sample(die, 2, replace=TRUE) # Roll the die twice
    sum(dice) # Add results   
}
sapply(c(1:100), roll)

请注意, sapply 会将参数发送给函数,因此您需要更改 roll 以获取该输入(并且不对其进行任何操作)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章