gpt4 book ai didi

r - 从列中提取模式并在 R 数据框中创建一个新模式

转载 作者:行者123 更新时间:2023-12-01 23:48:24 26 4
gpt4 key购买 nike

我有以下 R 数据框

  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

关于r - 从列中提取模式并在 R 数据框中创建一个新模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63827173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com