为另一列中的每个值选择一列中的最大值[重复]

Posted

技术标签:

【中文标题】为另一列中的每个值选择一列中的最大值[重复]【英文标题】: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 【参考方案1】:
aggregrate(sales ~ phone, df, max)

【讨论】:

感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。 proper explanation 将通过展示为什么这是解决问题的好方法,并使其对有其他类似问题的未来读者更有用,从而大大提高其长期价值。请编辑您的答案以添加一些解释。

以上是关于为另一列中的每个值选择一列中的最大值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

调整相对于 2 列的选择以在一列中返回最大值以用于另一列中的重复条目

Python:在一列中为另一列中的单个值显示多个值

如何根据bigquery中另一列中的重复值计算一列

基于sql中另一列的一列中的最大数据

如何在数据帧中沿值的一列生成随机均匀分布而不必对所述列中的每个值重复?

如何使用 mySQL 返回另一列中每个值的最常见列值?