我的数据表看起来像这样:
team player score
A 1 1
A 1 3
A 2 2
A 2 5
B 1 2
B 1 3
我想以每个团队/玩家组合的最低分数返回行。 如,
A 1 1
A 2 2
B 1 2
我尝试过类似的事情:
dt[, list(value=min(dt$score)), by=dt$team]
但这不起作用
Error in `[.data.frame`(dt, , list(value = min(dt$score)), : unused argument (by = dt$team)
它不会给我我正在寻找的东西(只有团队一分钟)。 同样,我试过:
dt[which(dt$score == min(dt$score)), ]
但是这给了整个列表中的最小值(仅为A 1 1)
有什么建议吗?
答案 0 :(得分:0)
尝试:
aggregate(list(score = df$score),by = list(team = df$team,player = df$player),FUN = "min")
其中df是您的数据框。
数据框:
> df
team player score
1 a 1 1
2 a 1 3
3 a 2 2
4 a 2 5
5 b 1 2
6 b 1 3
结果:
> aggregate(list(score = df$score),by = list(team = df$team,player = df$player),FUN = "min")
team player score
1 a 1 1
2 b 1 2
3 a 2 2