【问题标题】:Filtering a list contained in a data frame with a vector. R studio使用向量过滤包含在数据框中的列表。 R工作室
【发布时间】:2018-10-29 03:47:51
【问题描述】:

我有一个包含两列的数据框:一列名为“path_name”,包含 74 条路径,另一列名为“genes”,包含每个路径的基因列表。此外,我有一个包含 28 个突变基因的载体。我需要知道我可以在哪个途径中找到每个突变基因。例如:

mutated_genes=("MAP4K4"  "TRAF2"  "CACNG3" ...)

hsa04010__117 MAP4K4,DUSP10*,DUSP10*,DUSP10*,DUSP10*,DUSP10*,DUSP10*, DUSP10*,DUSP10*,DUSP10*,DUSP10*,DUSP3*,DUSP3*,DUSP3*,DUSP3*,PPM1A,AKT3,AKT3,AKT3,ZAK,MAP3K12,MAP3K13,TRAF2,CASP3,IL1R1,IL1R1,TNFRSF1A,IL1A,IL1A,TNF,RAC1,RAC1,RAC1,RAC1,MAP2K7,MAPK8,MAPK8,MAPK8,MECOM,HSPA1A,HSPA1A,HSPA1A,HSPA1A,HSPA1A,HSPA1A,MAP4K3,MAPK8IP2 MAP4K1....

hsa04014__118 MAP4K4,DUSP10*,DUSP10*,DUSP10*,DUSP10*,DUSP10* ...

我需要这样的东西:

hsa04010= MAP4K4 TRAF2
hsa01014= CACNG3
....

我不知道如何使用 R 过滤数据框中包含的列表。我尝试使用子集函数来过滤,但它不正确。有谁能帮助我吗?提前致谢。

【问题讨论】:

  • 你能告诉我你的数据框的确切结构 - str(my_df)

标签: r list dataframe filter


【解决方案1】:

更新 - dplyr 方法可以是

library(dplyr)

df1 <- df %>% 
  rowwise() %>%
  mutate(mutated = paste(mutated_genes[unlist(
    lapply(mutated_genes, function(x) x %in% strsplit(genes, ",")[[1]]))], collapse=","),
    path_name = gsub("_.*$", "", path_name)) %>%
  select(-genes) %>%
  data.frame()

输出为:

df1
  path_name      mutated
1  hsa04010 MAP4K4,TRAF2
2  hsa04014       MAP4K4

样本数据:

df <-structure(list(path_name = c("hsa04010__117", "hsa04014__118"
), genes = c("MAP4K4,DUSP10*,DUSP10*,DUSP10*,DUSP10*,DUSP10*,DUSP10*,DUSP10*,DUSP10*,DUSP10*,DUSP10*,DUSP3*,DUSP3*,DUSP3*,DUSP3*,PPM1A,AKT3,AKT3,AKT3,ZAK,MAP3K12,MAP3K13,TRAF2,CASP3,IL1R1,IL1R1,TNFRSF1A,IL1A,IL1A,TNF,RAC1,RAC1,RAC1,RAC1,MAP2K7,MAPK8,MAPK8,MAPK8,MECOM,HSPA1A,HSPA1A,HSPA1A,HSPA1A,HSPA1A,HSPA1A,MAP4K3,MAPK8IP2,MAP4K1", 
"MAP4K4,DUSP10*,DUSP10*,DUSP10*,DUSP10*,DUSP10*")), class = "data.frame", row.names = c(NA, 
-2L))

mutated_genes <- c("MAP4K4", "TRAF2", "CACNG3")

【讨论】:

  • 非常感谢,总理。
  • 您好 Prem,该函数与唯一值不匹配。如果我有 MAP4K 和 MAP4K1,则两者都匹配。这个函数我还是有同样的问题link
猜你喜欢
  • 2021-04-18
  • 2016-12-05
  • 1970-01-01
  • 2021-03-16
  • 2019-02-06
  • 2018-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多