查找列中特定值的最大值?
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")]
)
我有一个包含 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")]
)