r - 从 data.farme 的行中拆分和子集
问题描述
如何使用 strsplit 从这种类型的字符串中提取模式为 NM_001291928(一次)和 Adora1?
"gene_id ""NM_001291928"";transcript_id ""NM_001291928"";gene_name ""Adora1"";"
我试过了:
strsplit(as.character(mydf[,1]), split=';', fixed=TRUE)
作为第一次尝试至少拆分行,然后对我需要的内容进行子集化,但没有成功。
我有一个具有 20.000 行的 data.frame,其结构与上面的行相同,但当然内容不同。
任何人都可以帮助我吗?
先感谢您
解决方案
我们可以使用正则表达式环视
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"";"'
推荐阅读
- java - Perform action on expiry with Caffeine on Java
- symfony - Async task with Symfony 4 application
- mongodb - Not able to query newly created mongodb collection using apache drill?
- python - 使用 python 中的链接对 PDF 进行 OCR
- oracle - 如何为变量分配多个值
- soap - Workday SOAP API - 获取不使用电子邮件过滤器的申请人
- spring-boot - 如何在 Visual Studio Code 的 Drools 中验证 DMN 模型?
- google-bigquery - 向 BigQuery 架构添加一列 - 但不是在最后
- http - http 标头中的空格字符是否应使用 %20 或 +
- c# - 如何在运行时应用更改?