【问题标题】:For loop not calculating value for each df rowFor循环不计算每个df行的值
【发布时间】:2021-08-14 19:04:43
【问题描述】:

我正在尝试使用公式 elo.prob 对数据框中的每个 I(行)执行计算。代码不是为每一行计算 elo.prob 的值并将其放入新列中,而是继续为整个数据帧计算 elo.prob 并将相同的值放入每个单元格中。

我的代码:

for (i in seq_len(nrow(NHLSince2010))) {
  match = NHLSince2010[i, ]
 
  Hometeam_elo = subset(NHLteams, team == match$Home)$elo
  Awayteam_elo = subset(NHLteams, team == match$Visitor)$elo
  NHLSince2010$eloProbHomeTeamWins <- elo.prob(Hometeam_elo, Awayteam_elo)
}

代码产生这个结果:

df result

如您所见,新的 eloProjectedWinner 列只为每一行放置了一个 0.636 的值。相反,我希望根据数据框中的“主”和“访客”团队为每一行设置不同的值。请帮忙!

【问题讨论】:

    标签: r for-loop


    【解决方案1】:

    我们可能还需要对赋值进行索引,否则它会针对整个列进行更新,而我们得到的值来自上次调用 elo.prob

    for (i in seq_len(nrow(NHLSince2010))) {
      match = NHLSince2010[i, ]
     
      Hometeam_elo = subset(NHLteams, team == match$Home)$elo
      Awayteam_elo = subset(NHLteams, team == match$Visitor)$elo
     NHLSince2010$eloProbHomeTeamWins[i] <- elo.prob(Hometeam_elo, Awayteam_elo)
    }
    

    【讨论】:

      猜你喜欢
      • 2021-01-31
      • 1970-01-01
      • 2020-11-03
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      • 2019-02-12
      • 2016-12-22
      • 2019-11-30
      相关资源
      最近更新 更多