【问题标题】:Running function in for-loop在for循环中运行函数
【发布时间】:2018-11-25 13:03:34
【问题描述】:

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

}

}

任何帮助将不胜感激!

【问题讨论】:

  • 输出列表会是什么样子?
  • 希望将输出列表放在 2 列中,一列用于组合总和值 >=25,另一列用于
  • 你能解释一下 for 循环试图做什么吗? G_than 和 L_than 是干什么用的?
  • 试图让 for 循环运行该函数 100 次,并将结果放在求和值的数据框中,无论它们是 >=25 还是

标签: r function for-loop


【解决方案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 以获取该输入(并且什么都不做)

【讨论】:

    猜你喜欢
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 2021-08-31
    • 1970-01-01
    相关资源
    最近更新 更多