大家好我回来了另一个关于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
谢谢
答案 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)
不确定
例如:
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