将公式应用于R中的整个表

时间:2014-07-27 17:06:23

标签: r

大家好我回来了另一个关于R.的问题所以问题是这样的,有一个表格包含足球比赛中球员的表现,其中包括各种参数,例如犯规次数,目标等等。播放器。

我想应用一个公式来衡量玩家的评分:

Player_rating=(goals scored + 0.5 * Assist + 0.5 * Shots on goal 
              - 0.2 * fouls commited -   0.8 * red card - 0.4 * yellow card 
              + 0.2 * saves)

输出需要在包含数据的表中显示为新列,Assume表称为player_details

在:

  Name  Goals Yellow.card
  A      1       0
  B      0       2
  C      2       1   

后:

 Name  Goals Yellow.card Player_rating
  A      1       0            15
  B      0       2            5
  C      2       1            26

谢谢

2 个答案:

答案 0 :(得分:1)

通过表我理解它的数据帧。在这里,我创建了一个虚拟数据框,其中包含您提到的字段。

df <- data.frame(goals = 4:10, assist = 5:11, shots = 1:7, fouls = 7:1, red = sample(1:3, 7,replace=T), yellow = sample(3:7, 7,replace=T), saves = sample(1:10, 7,replace=T))

m <- df*c(1,0.5,0.5,-0.2, -0.8, -0.4,0.2)
df <- cbind(df, player_rating = rowSums(m))

我已经使用了一个中间对象 m ,你可以省略它。

答案 1 :(得分:0)

不确定

  1. 创建一个采用数据框并计算评级的函数
  2. 调用该函数并将结果分配给列
  3. 例如:

    players <- data.frame(
      Name=c('A', 'B', 'C'),
      Goals=c(1, 0, 2),
      Yellow.card=c(0, 2, 1))
    
    player_rating <- function(x) {
      x$Goals - 0.4 * x$Yellow.card
    }
    players$Rating <- player_rating(players)
    players
    

    输出:

      Name Goals Yellow.card Rating
    1    A     1           0    1.0
    2    B     0           2   -0.8
    3    C     2           1    1.6