R:搜索2列索引的最小值行

时间:2016-02-01 13:20:24

标签: r data.table

我的数据表看起来像这样:

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)

有什么建议吗?

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