【问题标题】:Converting this list to a long list [duplicate]将此列表转换为长列表[重复]
【发布时间】:2021-09-08 17:36:23
【问题描述】:

我有一个转录因子和蛋白质的列表,它们假设如下所示

[![在此处输入图片描述][1]][1]

我想要两列数据,第一列是 TF,第二列是每个细胞一个单独的蛋白质,如下所示,正如您所见,每个 TF 在第一列中重复

有什么帮助吗?

【问题讨论】:

    标签: r dplyr reshape


    【解决方案1】:
      library(tidyverse)
    
     df %>% separate_rows(Proteins, sep = ";")
    
    # A tibble: 15 x 2
       TFs   Proteins
       <chr> <chr>   
     1 HNF4A HNF4A   
     2 HNF4A SUB1    
     3 E2F1  RB1     
     4 E2F1  E2F1    
     5 E2F1  E2F1    
     6 E2F1  TFDP1   
     7 E2F1  GABPB2  
     8 E2F1  CCNA2   
     9 E2F1  RBL1    
    10 E2F1  E2F1    
    11 E2F1  RB1     
    12 E2F1  E2F1    
    13 E2F1  CEBPE   
    14 E2F1  E2F1    
    15 E2F1  TFDP1 
    

    data.table

    library(data.table)
    setDT(df)[, list(Proteins = unlist(strsplit(Proteins, split = ";"))), by = TFs]
    
         TFs Proteins
     1: HNF4A    HNF4A
     2: HNF4A     SUB1
     3:  E2F1      RB1
     4:  E2F1     E2F1
     5:  E2F1     E2F1
     6:  E2F1    TFDP1
     7:  E2F1   GABPB2
     8:  E2F1    CCNA2
     9:  E2F1     RBL1
    10:  E2F1     E2F1
    11:  E2F1      RB1
    12:  E2F1     E2F1
    13:  E2F1    CEBPE
    14:  E2F1     E2F1
    15:  E2F1    TFDP1
    

    【讨论】:

    • 是的,使用df %&gt;% separate_rows(Proteins, sep = ";") %&gt;% distinct()
    【解决方案2】:

    这行得通吗:

    library(tidyr)
    library(dplyr)
    
    df %>% separate_rows(Proteins, sep = ';')
    # A tibble: 15 x 2
       TFs   Proteins
       <chr> <chr>   
     1 HNF4A HNF4A   
     2 HNF4A SUB1    
     3 E2F1  RB1     
     4 E2F1  E2F1    
     5 E2F1  E2F1    
     6 E2F1  TFDP1   
     7 E2F1  GABPB2  
     8 E2F1  CCNA2   
     9 E2F1  RBL1    
    10 E2F1  E2F1    
    11 E2F1  RB1     
    12 E2F1  E2F1    
    13 E2F1  CEBPE   
    14 E2F1  E2F1    
    15 E2F1  TFDP1   
    

    使用的数据:

    df
        TFs          Proteins
    1 HNF4A        HNF4A;SUB1
    2  E2F1          RB1;E2F1
    3  E2F1 E2F1;TFDP1;GABPB2
    4  E2F1   CCNA2;RBL1;E2F1
    5  E2F1    RB1;E2F1;CEBPE
    6  E2F1        E2F1;TFDP1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-29
      • 1970-01-01
      • 1970-01-01
      • 2021-06-09
      • 2019-11-27
      • 2015-06-23
      相关资源
      最近更新 更多