添加列,其中的数字对应于另一列中的值被看到的次数
Add column with numbers corresponding to how many times a value in another column is seen
我有一个大型数据框,我有一个子集来简化我的问题,它看起来像这样:
genome_ID cluster
p1.A2 1
p1.A2 3
p1.A2 3
p1.A2 4
p1.A3 2
p1.A4 2
p1.A5 1
p1.A5 3
我想在数据框中添加一列 'phages' 并添加与 genome_ID 出现次数相对应的数字...即..
genome_ID cluster phages
p1.A2 1 1
p1.A2 3 2
p1.A2 3 3
p1.A2 4 4
p1.A3 2 1
p1.A4 2 1
p1.A5 1 1
p1.A5 3 2
正如您所见,genome_ID p1.A2 出现了四次,因此噬菌体 (1-4) 列中现在有四个不同的分组。 p1.A5 出现了两次,所以现在从 1-2 编号。如果 genome_ID 出现五十次,我希望噬菌体列从 1-50 对每个进行编号(编号顺序无关紧要)
我需要这样做,以便我可以更轻松地对我的数据集进行子集化,以将其映射到系统发育(显示进化关系的生物树)
如果有人能让我深入了解有用的 R 包和方法,那将非常有帮助。
这个有用吗:
library(dplyr)
df %>% group_by(genome_ID) %>% mutate(phages = row_number())
# A tibble: 8 x 3
# Groups: genome_ID [4]
genome_ID cluster phages
<chr> <dbl> <int>
1 p1.A2 1 1
2 p1.A2 3 2
3 p1.A2 3 3
4 p1.A2 4 4
5 p1.A3 2 1
6 p1.A4 2 1
7 p1.A5 1 1
8 p1.A5 3 2
我有一个大型数据框,我有一个子集来简化我的问题,它看起来像这样:
genome_ID cluster
p1.A2 1
p1.A2 3
p1.A2 3
p1.A2 4
p1.A3 2
p1.A4 2
p1.A5 1
p1.A5 3
我想在数据框中添加一列 'phages' 并添加与 genome_ID 出现次数相对应的数字...即..
genome_ID cluster phages
p1.A2 1 1
p1.A2 3 2
p1.A2 3 3
p1.A2 4 4
p1.A3 2 1
p1.A4 2 1
p1.A5 1 1
p1.A5 3 2
正如您所见,genome_ID p1.A2 出现了四次,因此噬菌体 (1-4) 列中现在有四个不同的分组。 p1.A5 出现了两次,所以现在从 1-2 编号。如果 genome_ID 出现五十次,我希望噬菌体列从 1-50 对每个进行编号(编号顺序无关紧要)
我需要这样做,以便我可以更轻松地对我的数据集进行子集化,以将其映射到系统发育(显示进化关系的生物树)
如果有人能让我深入了解有用的 R 包和方法,那将非常有帮助。
这个有用吗:
library(dplyr)
df %>% group_by(genome_ID) %>% mutate(phages = row_number())
# A tibble: 8 x 3
# Groups: genome_ID [4]
genome_ID cluster phages
<chr> <dbl> <int>
1 p1.A2 1 1
2 p1.A2 3 2
3 p1.A2 3 3
4 p1.A2 4 4
5 p1.A3 2 1
6 p1.A4 2 1
7 p1.A5 1 1
8 p1.A5 3 2