这里是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
}
}
任何帮助将不胜感激!
答案 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以获取该输入(并且不执行任何操作)