我有一个包含 34 列和 12,964 行的数据框,其中两列是 Gene.Name 和 Mutation_Frequency。例如:
| 基因名称 | Mutation_Frequency |
|---|---|
| CTLA4 | 0 |
| TP53 | 4 |
| CTLA4 | 2 |
| CTLA4 | 2 |
| TP53 | 4 |
| TP53 | 6 |
我现在想创建一个名为“Highest_Mutation_Frequency”的列,它告诉我 Gene.Name 的最高突变频率,并将其放在一个新列中,如下所示:
| 基因名称 | Mutation_Frequency | Highest_Mutation_Frequency |
|---|---|---|
| CTLA4 | 0 | 2 |
| TP53 | 4 | 6 |
| CTLA4 | 2 | 2 |
| CTLA4 | 2 | 2 |
| TP53 | 0 | 6 |
| TP53 | 6 | 6 |
我意识到我可能可以使用 max() 命令,但我不确定如何实现它。与往常一样,任何帮助表示赞赏!
编辑:虽然这与另一个问题非常相似: 选择每组中具有最大值的行 这个问题还涉及生成唯一的行并将它们放置在另一个数据框中。
你可以使用:
library(dplyr)
data %>%
group_by(Gene.Name) %>%
mutate(Highest_Mutation_Frequency = max(Mutation_Frequency))
Run Code Online (Sandbox Code Playgroud)
一个选项 base R
aggregate(cbind(Highest_Mutation_Frequency = Mutation_Frequency) ~ Gene.Name, data, FUN = max)
Run Code Online (Sandbox Code Playgroud)