У меня возникли проблемы с сохранением вывода функции в переменную. Я думаю, что лучше всего дать мне некоторый контекст проблемы, которую я пытаюсь решить. Предположим, что игроки «а» и «г» играть в теннис, то 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, что разыгрывается в игру «а «против« 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.