删除R中的一个数值后,如何调整和重命名列中的数值?

oxosxuxt  于 2023-02-26  发布在  其他
关注(0)|答案(1)|浏览(106)

我有一个数据框,看起来像这样

Chrom       Pos Ref Alt sample_id cluster_id cellular_prevalence
1   chr11  70176412   C   G  SRC125_1          0              0.5389
8   chr12  10370686   G   A  SRC125_1          0              0.5389
15  chr12  40892074   T   A  SRC125_1          0              0.5389
22  chr12  53663629   G   T  SRC125_1          0              0.5389
29  chr13 103387098   C   T  SRC125_1          0              0.5389
36  chr13  24334244   G   T  SRC125_1          0              0.5389
....
....
   Chrom       Pos Ref Alt sample_id cluster_id cellular_prevalence
1086  chr3  12531337   G   C  SRC125_1          6              0.2675
1093  chr3  12531455   G   C  SRC125_1          6              0.2675
1100  chr3  12531462   G   A  SRC125_1          6              0.2675
1107  chr5 178460018   T   A  SRC125_1          6              0.2675
1114  chr5 180048230   C   T  SRC125_1          6              0.2675

群集总数:

unique(my_data$cluster_id)
0 1 2 3 4 5 6 7

我想删除每个sample_id只有一个突变的聚类,并根据删除的聚类重命名这些聚类。就像我的数据集中的一个示例一样,聚类2每个sample_id只有一个突变,我删除了它,现在想在删除cluster 2后重命名这些聚类,这样聚类3将重命名为cluster 2,聚类4 -〉cluster 3,聚类5 -〉cluster 4,依此类推
在R里怎么做?

3qpi33ja

3qpi33ja1#

假设您已经按照注解中的指示删除了不需要的集群,剩下的问题只是重命名集群。
为此,我们可以在排列好的数据集上使用dplyr中的cur_group_id

library(dplyr) # dplyr >= 1.1.0

df |>
  arrange(cluster_id) |>
  mutate(new_cluster_id = cur_group_id()-1,
         .by = "cluster_id",
         .after = "cluster_id")
    • 输出:**
# A tibble: 15 × 9
   rownumber Chrom Pos       Ref   Alt   sample_id cluster_id new_cluster_id cellular_prevalence
   <chr>     <chr> <chr>     <chr> <chr> <chr>          <dbl>          <dbl>               <dbl>
 1 1         chr11 70176412  C     G     SRC125_1           0              0               0.539
 2 8         chr12 10370686  G     A     SRC125_1           0              0               0.539
 3 15        chr12 40892074  T     A     SRC125_1           0              0               0.539
 4 22        chr12 53663629  G     T     SRC125_1           0              0               0.539
 5 29        chr13 103387098 C     T     SRC125_1           0              0               0.539
 6 36        chr13 24334244  G     T     SRC125_1           0              0               0.539
 7 00        xxxxx xxxxxxxx  X     X     XXXXXX_0           1              1               0    
 8 00        xxxxx xxxxxxxx  X     X     XXXXXX_0           3              2               0    
 9 00        xxxxx xxxxxxxx  X     X     XXXXXX_0           4              3               0    
10 00        xxxxx xxxxxxxx  X     X     XXXXXX_0           5              4               0    
11 1086      chr3  12531337  G     C     SRC125_1           6              5               0.268
12 1093      chr3  12531455  G     C     SRC125_1           6              5               0.268
13 1100      chr3  12531462  G     A     SRC125_1           6              5               0.268
14 1107      chr5  178460018 T     A     SRC125_1           6              5               0.268
15 1114      chr5  180048230 C     T     SRC125_1           6              5               0.268
    • 数据(请包括最小可重现示例,见备注):**
library(readr)

df <- read_table("rownumber Chrom       Pos Ref Alt sample_id cluster_id cellular_prevalence
1   chr11  70176412   C   G  SRC125_1          0              0.5389
8   chr12  10370686   G   A  SRC125_1          0              0.5389
15  chr12  40892074   T   A  SRC125_1          0              0.5389
22  chr12  53663629   G   T  SRC125_1          0              0.5389
29  chr13 103387098   C   T  SRC125_1          0              0.5389
36  chr13  24334244   G   T  SRC125_1          0              0.5389
00  xxxxx  xxxxxxxx   X   X  XXXXXX_0          1              0.0
00  xxxxx  xxxxxxxx   X   X  XXXXXX_0          3              0.0
00  xxxxx  xxxxxxxx   X   X  XXXXXX_0          4              0.0
00  xxxxx  xxxxxxxx   X   X  XXXXXX_0          5              0.0
1086  chr3  12531337   G   C  SRC125_1         6             0.2675
1093  chr3  12531455   G   C  SRC125_1         6             0.2675
1100  chr3  12531462   G   A  SRC125_1         6             0.2675
1107  chr5 178460018   T   A  SRC125_1         6             0.2675
1114  chr5 180048230   C   T  SRC125_1         6             0.2675")

相关问题