gpt4 book ai didi

r - 函数的函数总是返回 0-R

转载 作者:行者123 更新时间:2023-12-03 14:47:54 25 4
gpt4 key购买 nike

我在 r 中编写函数的函数时遇到问题。具体来说,我想计算 Yahtzee 中掷骰子的几率,当我使用显式参数时,我得到一个数值:

large_straight <- function(){
rolls <- sample(6, size = 5, replace = TRUE)
if(all(Numbers %in% c(rolls))) {
1
} else if (all(Numbers2 %in% c(rolls))) {
1
} else 0
}

sum(replicate(1000, large_straight()))/1000

返回一个非零值,

但是当我尝试概括时,这样我不仅可以通过大的直道,还可以通过其他掷骰子:
my_roll_odds <- function(Size, FUN){
sum(replicate(Size, FUN))/Size
}

my_roll_odds(1000, large_straight())

我总是得到 0 的返回值,我不知道为什么。任何帮助将不胜感激!

最佳答案

我认为由于嵌套调用,无法正确评估该函数。这是 match.fun 的方法

my_roll_odds <- function(Size, FUN){
sum(replicate(Size, match.fun(FUN)()))/Size
}

my_roll_odds(1000, large_straight)
#[1] 0.029

my_roll_odds(1000, large_straight)
#[1] 0.037

关于r - 函数的函数总是返回 0-R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60583809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com