【问题标题】:Select max value in one column for every value in the other column [duplicate]为另一列中的每个值选择一列中的最大值[重复]
【发布时间】:2021-06-10 09:43:57
【问题描述】:

我有一个数据框 competition,其中包含 branchphonesales

| branch   | phone   | sales|
|----------|---------|------|
| 123      | milky   | 654  |
| 456      | lemon   | 342  |
| 789      | blue    | 966  |
| 456      | blue    | 100  |
| 456      | milky   | 234  |
| 123      | lemon   | 874  |
| 789      | milky   | 234  |
| 123      | blue    | 332  |
| 789      | lemon   | 865  |

我想显示每部手机的最高销售额: 输出应该是一个数据框winners,看起来像这样

| branch   | phone   | sales|
|----------|---------|------|
| 123      | milky   | 654  |
| 789      | blue    | 966  |
| 123      | lemon   | 874  |

我尝试先按sales 订购一个数据框,然后只剩下顶部的 3 行,

competition <- competition[order(competition$sales, decreasing = TRUE ),]
winners <- head(competition, 3)

但输出显示 lemon 电话两次,分别是 874 和 865 sales

【问题讨论】:

  • winners &lt;- competition %&gt;% group_by(phone) %&gt;% slice(which.max(sales)) 使用dplyr

标签: r group-by max


【解决方案1】:
aggregrate(sales ~ phone, df, max)

【讨论】:

  • 感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。 proper explanation 将通过展示为什么这是解决问题的好方法,并使其对有其他类似问题的未来读者更有用,从而大大提高其长期价值。请编辑您的答案以添加一些解释。
猜你喜欢
  • 2012-05-29
  • 2018-08-25
  • 1970-01-01
  • 2020-11-17
  • 1970-01-01
  • 1970-01-01
  • 2021-05-25
  • 2018-01-02
  • 1970-01-01
相关资源
最近更新 更多