for循环中的运行功能

时间:2018-11-25 13:03:35

标签: r function for-loop

这里是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

}

}

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

在这种情况下,不应该使用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以获取该输入(并且不执行任何操作)