代码之家  ›  专栏  ›  技术社区  ›  NewUsr_stat

从列中拆分和子集数据.farme

r
  •  1
  • NewUsr_stat  · 技术社区  · 8 年前

    如何使用strsplit从这种类型的字符串中提取模式NM_(一次)和Adora1?

    “gene_id”“NM_001291928”“;transcript_id”“NM_001291928”“;gene_name”“Adora1”“;”

      strsplit(as.character(mydf[,1]), split=';', fixed=TRUE)       
    

    作为第一次尝试,至少分割线,然后子集我需要的,但没有成功。

    我有一个数据框其中20000行的结构与上面的行相同,但内容当然不同。

    有人能帮我吗?

    先谢谢你

    1 回复  |  直到 8 年前
        1
  •  1
  •   Community Mohan Dere    6 年前

    library(stringr)
    library(dplyr)
    str_remove_all(str1, '"') %>%
        str_extract_all("(?<=(gene_id|gene_name) )\\w+")
    #[[1]]
    #[1] "NM_001291928" "Adora1"   
    

    或使用 strsplit

    lapply(strsplit(gsub('"', '', str1), '[; ]+'), `[`, c(2, 6))
    

    str1 <- '"gene_id ""NM_001291928""; transcript_id ""NM_001291928""; gene_name ""Adora1"";"'