如何使用max函数获取R嵌套循环计数器

时间:2019-07-14 09:50:44

标签: r

我正在为足球投注预测找出这个R代码。下面的代码有效,但我希望代码计算home_wins,draws,away_wins而不是仅仅计分线

我有三个问题-

1)在执行rpois() nsim次之后,抽签似乎无法获得away_win的记录

2)我不能选择三个结果中的哪个更高

3)因此,我无法将其附加到灯具的原始表中

问题1:

我尝试放置三个变量home_win = character(length(nsim)) away_win,平局。

我已尝试根据home_win[i] = sum(h_scored>a_scored) away_win[i] = sum(h_scored < a_scored)draw[i] = sum(h_scored == a_scored)对结果进行计数,并调用paste0()

问题2:

要选择最高频率的结果和away_win | home_win | draw之间的值,我已经尝试过pmax,这种方法通常有效,但不能

问题3:我认为如果我解决了以上两个问题,应该可以解决问题。

nsim = 100
get_score <- function (home, away, nsim){
  score_line = character(length(nsim))
  for (i in 1:nsim){
      h_scored = rpois(1, ave_h_s)
      a_scored = rpois(1, ave_a_s)
      score_line[i] = paste0(h_scored, '-', a_scored)    
  }
  return (list(names(which.max(table(score_line))), max(table(score_line))))
  }

round_1 <- head(fixtures,10)
matches <- mapply(get_score, round_1$HOME.TEAM, round_1$AWAY.TEAM, nsim, SIMPLIFY = FALSE)
round_1$outcome <- sapply(matches, function(x) x[1])
round_1$prob <- sapply(matches, function(x) x[2])

我希望round_1表可以追加

  1. “结果”列,其中每场比赛都有主场赢/客胜/平局

  2. “频率”列

0 个答案:

没有答案