0
我在将函数的输出存储到变量中时遇到了问题。我认为最好给出我想要解决的问题的一些背景。 假设玩家“a”和“R”打网球的比赛中,runningScoreFn求和pointHistory载体,在一个不错的data.frame将函数的输出存储到变量中R
runningScoreFn = function(pointHistory){
playerUni = c("a", "r")
cols = sapply(playerUni, function(thisPlayer){
cumsum(pointHistory == thisPlayer)
})
names(cols) = playerUni
cbind(pointHistory, as.data.frame(cols))
}
播放出来的“一个游戏的oneEpxiermentGameFn把一切融合在一起“vs”r“。第一个赢得4分的球员赢得比赛,但他必须领先至少2分。 “r”有60%的几率赢得一分。
pRogerPoint = 0.6
oneExperimentGameFn = function(pRogerPoint){
game = c(rep("r",pRogerPoint * 100), rep("a", 100-pRogerPoint*100))
i = 4
keepGoing = TRUE
while(keepGoing){
whosePoint = sample(game, size=i, replace=TRUE)
if(sum(whosePoint=="r")-sum(whosePoint=="a")>=2){
success = TRUE
print(cbind(runningScoreFn(whosePoint),success=success))
keepGoing = FALSE
}else if(sum(whosePoint=="a")-sum(whosePoint=="r")>=2){
success = FALSE
print(cbind(runningScoreFn(whosePoint),success=success))
keepGoing = FALSE
}
i=i+1
}
}
pRogerGameFn显示罗杰赢得比赛的概率。
pRogerGameFn = function(pRogerPoint, NExperiments){
RogerGameFn = lapply(1:NExperiments,function(dummy){
ok=oneExperimentGameFn(pRogerPoint)
})}
这里我希望将输出存储到变量ok中,但是ok返回NULL。我认为这与我的oneExperimentGameFn有关。 我也试过ok = RogerGameFn,但是ok也返回NULL。