gpt4 book ai didi

r - 在一列中查找正则表达式并添加到同一数据框中的新列

转载 作者:行者123 更新时间:2023-12-02 02:59:42 27 4
gpt4 key购买 nike

我有一个数据框(TBB)如下

X.CHROM    POS        INFO

chr1 134324 SAMPLE=LNGHJ;
chr2 2333 SAMPLE=dd;GERP;.;
chr2 3334 SAMPLE=;GERP;DDS;CDC=dd;

我想提取每个分号之间的所有内容并将其放在自己的列中,以便结果看起来像

X.CHROM    POS        INFO                       
chr1 134324 SAMPLE=LNGHJ; SAMPLE=LNGHJ
chr2 2333 SAMPLE=dd;GERP;DDS=3; SAMPLE=dd GERP DDS=3
chr2 3334 SAMPLE=;GERP;DDS; SAMPLE= GERP DDS

我试过了

TBB3 <- TBB[grep("SAMPLE.*?;", TBB$INFO), ]
TBB4<-cbind(TBB3,TBB)

但是这些列相对于彼此的大小是错误的,显然我必须对分号后的每个单词重复此操作,因此效率不高。

最佳答案

您可以尝试stringi::stri_split_fixed

library(stringi)
cbind(TBB, stri_split_fixed(TBB$INFO, ";", simplify = TRUE, omit_empty = TRUE))
# X.CHROM POS INFO 1 2 3
# 1 chr1 134324 SAMPLE=LNGHJ; SAMPLE=LNGHJ
# 2 chr2 2333 SAMPLE=dd;GERP;DDS=3; SAMPLE=dd GERP DDS=3
# 3 chr2 3334 SAMPLE=;GERP;DDS; SAMPLE= GERP DDS

关于r - 在一列中查找正则表达式并添加到同一数据框中的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30460428/

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