首页 > 解决方案 > 从第 2 列订购的拣货值

问题描述

我在列中有一个参数作为 AD。但每行的顺序不同。我如何从 X2 中选择“AD”。

X1                      X2
GT:GQ:GQX:DPI:AD:DP     0/1:909:12:125:93,26:119
GT:GQ:GQX:DPI:AD        0/1:909:12:125:35,24
GT:GQ:GQX:DP:DPF:AD     0/1:57:3:11:130:8,3
GT:AD:DP:GQ:PL          0/1:211,31:242:99:138,0,7251

输出

AD
93,26
35,24
8,3
211,31

标签: rdataframe

解决方案


":"在使用时拆分列strsplit并选择"AD"使用 . 标识grep的位置mapply

mapply(`[`, strsplit(d$X2, ":"), sapply(strsplit(d$X1,":"), grep, pattern="AD"))
# [1] "93,26"  "35,24"  "8,3"    "211,31"

数据:

d <- structure(list(X1 = c("GT:GQ:GQX:DPI:AD:DP", "GT:GQ:GQX:DPI:AD", 
"GT:GQ:GQX:DP:DPF:AD", "GT:AD:DP:GQ:PL"), X2 = c("0/1:909:12:125:93,26:119", 
"0/1:909:12:125:35,24", "0/1:57:3:11:130:8,3", "0/1:211,31:242:99:138,0,7251"
)), class = "data.frame", row.names = c(NA, -4L))

推荐阅读