【问题标题】:Column with specific value R具有特定值 R 的列
【发布时间】:2018-12-13 14:11:35
【问题描述】:

我有一个包含 3 列(基因、varian_type 和样本)的数据框和两列中的另一列(路径和基因)。在第二个中,我列出了每个途径中的基因。所以现在我想创建一个包含 4 列(基因、变体类型、样本和通路)的新数据框,显示每个基因存在的一个或多个通路。有谁能帮助我吗?提前致谢。

1)

     Hugo_Symbol    Variant_Type         Tumor_Sample_Barcode
1       ZAP70          SNP           TCGA-E9-A1RC-01A-11D-A159-09

2)

structure(list(circuit_names = c("hsa04014__44", "hsa04014__33", 
"hsa04014__37", "hsa04014__24", "hsa04014__26", "hsa04014__30"
), mutated = c("ZAP70,NF1,MAPK1,RAF1,CSF1R,RASGRP1,MAP2K1,MAP2K1,RASGRF1,RASGRF1,RASGRF1,RASGRF1,RASGRF1,NF1,PLCG1,PLCG1,PLCG1", 
"ZAP70,NF1,AKT3,CSF1R,BAD,RASGRP1,RASGRF1,RASGRF1,RASGRF1,RASGRF1,RASGRF1,PIK3R5,NF1,BCL2L1,PLCG1,PLCG1,PLCG1,AKT3", 
"ZAP70,NF1,AKT3,CSF1R,RASGRP1,RASGRF1,RASGRF1,RASGRF1,RASGRF1,RASGRF1,PIK3R5,NF1,PLCG1,PLCG1,PLCG1,FOXO4,AKT3", 
"ZAP70,NF1,CSF1R,RGL2,RASGRP1,RASGRF1,RASGRF1,RASGRF1,RASGRF1,RASGRF1,NF1,PLCG1,PLCG1,PLCG1", 
"ZAP70,NF1,CSF1R,RASGRP1,RASGRF1,RASGRF1,RASGRF1,RASGRF1,RASGRF1,NF1,PLCG1,PLCG1,PLCG1,PLCE1", 
"ZAP70,NF1,CSF1R,RASGRP1,RASGRF1,RASGRF1,RASGRF1,RASGRF1,RASGRF1,NF1,PLCG1,PLCG1,PLCG1,PLCE1"
)), row.names = c(NA, 6L), class = "data.frame")

3) 我不会这样的

    structure(list(Hugo_Symbol = c("ZAP70", "TTN", "TTN", "PRKCD", 
"PIK3CA", "TLR3"), Variant_Type = c("SNP", "SNP", "SNP", "SNP", 
"SNP", "SNP"), Tumor_Sample_Barcode = c("TCGA-E9-A1RC-01A-11D-A159-09", 
"TCGA-E9-A1RC-01A-11D-A159-09", "TCGA-E9-A1RC-01A-11D-A159-09", 
"TCGA-E9-A1RC-01A-11D-A159-09", "TCGA-E9-A1RC-01A-11D-A159-09", 
"TCGA-E9-A1RC-01A-11D-A159-09"), Pathways = c("hsa04014__44, hsa04014__33, hsa04014__37, hsa04014__24", 
"hsa04530__11 20 16", "hsa04530__11 20 16", "hsa04722__37, hsa04722__35, hsa04722__33", 
"hsa04151__25, hsa04151__37, hsa04151__73", "hsa04620__23")), row.names = c("6", 
"8", "9", "11", "13", "16"), class = "data.frame")

【问题讨论】:

  • 你的数据格式不是很清楚。您是否已将它们导入到 R 中?如果是这样,只需使用dput 分享相关部分。
  • 添加dput() 输出。
  • 对不起,在哪里?
  • 您可以dput(head(df)) 并在此处粘贴输出

标签: r dataframe filtering


【解决方案1】:

更新 - 更改了解决方法,以便它也可以处理 OP 指出的情况。即如果Hugo_SymbolNF1 那么逻辑不应该匹配NF11NF12

library(dplyr)
library(tidyr)

df1  %>%
  mutate(Hugo_Symbol = as.character(Hugo_Symbol)) %>%   #convert factor to character variable
  left_join(df2 %>%
              separate_rows(mutated, sep = ','), 
            by = c("Hugo_Symbol" = "mutated")) %>%
  group_by(Hugo_Symbol, Variant_Type, Tumor_Sample_Barcode) %>%
  summarise(Pathways = paste(unique(circuit_names), collapse = ","))   #combine distinct values in Pathways

给了

  Hugo_Symbol Variant_Type Tumor_Sample_Barcode         Pathways                                     
1 NF1         SNP          TCGA-E9-A1RC-01A-11D-A159-09 hsa04014__44,hsa04014__33


样本数据:

df1 <- structure(list(Hugo_Symbol = "NF1", Variant_Type = "SNP", Tumor_Sample_Barcode = "TCGA-E9-A1RC-01A-11D-A159-09"), .Names = c("Hugo_Symbol", 
"Variant_Type", "Tumor_Sample_Barcode"), class = "data.frame", row.names = "1")

df2 <- structure(list(circuit_names = c("hsa04014__44", "hsa04014__33", 
"hsa04014__37", "hsa04014__24"), mutated = c("ZAP70,NF1,MAPK1,RAF1,CSF1R,RASGRP1,MAP2K1", 
"ZAP70,NF1,AKT3,CSF1R,BAD,RASGRP1,RASGRF1,RASGRF1,RASGRF1,RASGRF1", 
"ZAP70,NF11,AKT3,CSF1R,RASGRP1,RASGRF1,RASGRF1,RASGRF1,RASGRF1,RASGRF", 
"ZAP70,NF12,CSF1R,RGL2,RASGRP1,RASGRF1,RASGRF1,RASGRF1,RASGRF1"
)), .Names = c("circuit_names", "mutated"), class = "data.frame", row.names = c("1", 
"2", "3", "4"))

【讨论】:

  • 非常感谢 Prem。你真的帮了我!
  • 您好 Prem,我意识到您的功能有问题。问题是,例如,如果我有 MAP3K1 (Hugo_Symbol),则该函数与 MAP3K11 或 MAP3K14 或 AMAP3K11 匹配,因此新列将不正确。你能帮帮我吗?
  • 您好 Prem,谢谢您,但有问题。这是警告信息:Column Hugo_Symbol/mutatedjoining factor and character vector, coercing into character vector
  • 是的,但还有另一个问题......现在在“途径”中有重复或三倍的途径。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-31
  • 2022-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
相关资源
最近更新 更多