Разделение и подмножество из строк data.farme - PullRequest
0 голосов
/ 12 сентября 2018

как можно извлечь шаблоны как NM_001291928 (один раз) и Adora1 из этого типа строки, используя strsplit?

"gene_id" "NM_001291928" "; transcript_id" "NM_001291928" "; gene_name" "Adora1 ""; "

Я пытался:

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

в качестве первой попытки хотя бы разделить строки, а затем установить то, что мне нужно, но безуспешно.

У меня есть data.frame с 20.000 строками с такой же структурой, что и на приведенной выше строке, но, конечно, с другим содержимым.

Может кто-нибудь помочь мне, пожалуйста?

Заранее спасибо

1 Ответ

0 голосов
/ 12 сентября 2018

Мы могли бы использовать регулярное выражение

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))

data

str1 <- '"gene_id ""NM_001291928""; transcript_id ""NM_001291928""; gene_name ""Adora1"";"'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...