首页 > 解决方案 > 如何获得每个不同的唯一行的最大值?

问题描述

我不是一个非常专业的 R 程序员,我想就如何在特定列中为每个唯一行检索最大值提出建议。

让我们举一个我拥有的数据框的简单示例:

   `fruit`   `dessert                difficulty`

1  `apple    cinnamon and apple`         0

2  `apple`     `apple-pie`              `1`

3  `apple`     `strudel`                `2`

4  `banana`    `banana-split`           `0`

5  `banana`    `banana-pie`             `1`

6  `banana`    `banana pancakes`        `2`

7  `banana`    `banana ice-cream`       `3`

对于每一行,我想取每个水果的最大“难度”(例如苹果 = 2)并将这个值用于其他功能。在我的真实数据框中,我不知道水果值的确切名称,但我知道它们在这个例子中是重复的。

我的想法是执行一个 for 循环,但我想有一个最简单的方法来执行它。

提前致谢!

标签: rdataframemax

解决方案


也许你想要ave

df <- within(df,difficulty_max <- ave(difficulty,fruit,FUN = max))

这样

> dfout
   fruit            dessert difficulty difficulty_max
1  apple cinnamon and apple          0              2
2  apple          apple-pie          1              2
3  apple            strudel          2              2
4 banana       banana-split          0              3
5 banana         banana-pie          1              3
6 banana    banana pancakes          2              3
7 banana   banana ice-cream          3              3

推荐阅读