r - 从列中提取模式并在 R 数据框中创建一个新模式
问题描述
我有以下 R DataFrame
x y
1 1 "gene_biotype "lincRNA"; gene_id "ENSG00000224818"; gene_name "RP11-134G8.8"
2 2 "gene_biotype "processed_transcript"; gene_id "ENSG00000261067"; gene_name "RP11-264B17.3"
3 3 "gene_biotype "processed_transcript"; gene_id "ENSG00000261067"; gene_name "RP11-264B17.3"
我想gene_id
从每一行中提取并制作如下所示的新列,
x y
1 1 ENSG00000224818
2 2 ENSG00000261067
3 3 ENSG00000261067
我试过sapply(strsplit(dat$y, 'gene_id \"'), "[", 2)
了,但这只是删除了前面的模式。我应该如何删除后续模式并提取gene_id
可以使用以下方法复制数据帧
x <- c(1:3)
y <- c('"gene_biotype \"lincRNA\"; gene_id \"ENSG00000224818\"; gene_name \"RP11-134G8.8\"',
'"gene_biotype \"processed_transcript\"; gene_id \"ENSG00000261067\"; gene_name \"RP11-264B17.3\"',
'"gene_biotype \"processed_transcript\"; gene_id \"ENSG00000261067\"; gene_name \"RP11-264B17.3\"')
dat <- data.frame(x,y)
dat
解决方案
您可以在 之后提取单词"gene_id"
:
dat$y <- sub('.*gene_id\\s"(\\w+)";.*', '\\1', dat$y)
dat
# x y
#1 1 ENSG00000224818
#2 2 ENSG00000261067
#3 3 ENSG00000261067
推荐阅读
- python-3.x - 使用 Python 将 selenium chrome 实例发送到后台
- kubernetes - 如何将私有 helm 存储库与 Spinnaker 一起使用?
- cmake - 如何设置 CMAKE_MODULE_PATH 以在 CMake 中进行常规和外源构建?
- javascript - 生成的 URL 以使其存在
- machine-learning - PyTorch 种子会影响 dropout 层吗?
- vue.js - 理解 VueJS 中的组件嵌套
- javascript - JavaScript:如何按顺序加载图像
- reporting-services - 如何修复 SSRS 中的饼图大小
- php - Wordpress 评论顺序错误且 gravatar 无法正常工作
- sql-server - 使用具有 NameSpaces 的 SQL Server 遍历 XML 节点