首页 > 解决方案 > 在R中提取由分隔符分隔的特定模式

问题描述

我有一个数据框,其中有一列包含字符串nf1[1,"Info"] <- "AC=1;AF=0.500;AN=2;BaseQRankSum=-1.026e+00;ClippingRankSum=-1.026e+00;DP=4;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=28.25;MQRankSum=-1.026e+00;QD=10.18;ReadPosRankSum=1.03;SOR=0.693“。

我想将 AF、DP、QD、FS 的值提取到单独的列中。

我试过了

library('splitstackshape')
cSplit(nf1[1,],"Info",";", "wide")

然后我可以对所需的列进行子集化。我相信还有更好的选择。

标签: rregex

解决方案


我会sub在这里使用:

sub(".*AF=(.*?)(?:;.*|$)", "\\1", x)
[1] "0.500"

您可以轻松修改上述内容以定位其他标签。

演示


推荐阅读