查找列中特定值的最大值?

Find the maximum value for a specific value in a column?

我有一个包含 34 列和 12,964 行的数据框,其中两列是 Gene.Name 和 Mutation_Frequency。例如:

Gene.Name Mutation_Frequency
CTLA4 0
TP53 4
CTLA4 2
CTLA4 2
TP53 4
TP53 6

我现在想创建一个名为“Highest_Mutation_Frequency”的列,它告诉我 Gene.Name 的最高突变频率,并将其放在一个新列中,如下所示:

Gene.Name Mutation_Frequency 最高_Mutation_Frequency
CTLA4 0 2
TP53 4 6
CTLA4 2 2
CTLA4 2 2
TP53 0 6
TP53 6 6

我意识到我可能会使用 max() 命令,但我不确定如何实现它。一如既往,我们将不胜感激!

编辑:尽管这与另一个问题非常相似: Select the row with the maximum value in each group 这个问题还涉及生成唯一行并将它们放在另一个数据框中。

您可以使用:

library(dplyr)

data %>%
  group_by(Gene.Name) %>%
  mutate(Highest_Mutation_Frequency = max(Mutation_Frequency))

选项base R

aggregate(cbind(Highest_Mutation_Frequency = Mutation_Frequency) ~ Gene.Name, data, FUN = max)

另一个基础 R 选项使用 unique + ave

unique(
  transform(
    df,
    Highest_Mutation_Frequency = ave(Mutation_Frequency,Gene.Name,FUN = max)
  )[c("Gene.Name","Highest_Mutation_Frequency")]
)