【发布时间】:2018-02-04 04:24:03
【问题描述】:
我正在解决这个问题:第一个人掷出 3 个骰子中的 1 个,然后第二个人掷出剩下的 2 个骰子中的 1 个。骰子是 6 面的,但每面都有随机数字(对应于每个骰子的数字在该骰子的样本中列出)。
approximated.probability.that.c1.wins <- function(n, k, c1, c2){
red <- replicate(k, sum(sample(c(3,3,3,3,3,6), n)))
yellow <- replicate(k, sum(sample(c(2,2,2,5,5,5), n)))
green <- replicate(k, sum(sample(c(1,4,4,4,4,4), n)))
return(sum(c1 > c2))
}
approximated.probability.that.c1.wins(1, 1000, red, green)
当我将c1 和c2 替换为函数中的向量(如sum(red > green))时,我的函数工作。但是,当我按原样运行该函数时,它返回错误"object 'red' not found"。目标是用我在调用函数时定义的任何颜色替换c1 和c2。
【问题讨论】:
-
如果在函数运行之前没有创建
red对象(并且无论如何只能在函数的环境中),则不能使用red调用它。该函数也不对red/yellow/green变量做任何事情,这可能不是您想要的。 -
你可能需要
approximated.probability.that.c1.wins(1, 3, 'red', 'green')和return(sum(get(c1) > get(c2))) -
@akrun 或将
c1和c2捕获为表达式。
标签: r