[英]How to make triplet set of columns and apply function to it
我有一个mycols
的数据mycols
。 您可以看到mycols具有^SQN
, ^WES
和^WGS
列集。 我想以相同的顺序制作SQN
, WES
和WGS
列的三元组(我不想包含(Pile:up)$
和:AD$
列)(您可以看到SQN,WES和WGS的扩展名相同)每一套)跨mycols
。 换句话说,我想组成一组具有相同扩展名的SQN,WES和WGS。 然后,我有了一个名为myfunc
的函数。 我想将该函数应用于由此形成的每个三元组。
mycols<- c("SQN:IDH2:G515T:R172M","WES:IDH2:G515T:R172M" ,"WES:IDH2:G515T:R172M:AD:(Pile:up)", "WGS:IDH2:G515T:R172M","SQN:JAK1:A1432T:T478S", "WES:JAK1:A1432T:T478S" ,"WES:JAK1:A1432T:T478S:AD:(pile:up)","WGS:JAK1:A1432T:T478S","SQN:JAK1:T1868C:V623A","WES:JAK1:T1868C:V623A","WES:JAK1:T1868C:V623A:AD","WES:JAK1:T1868C:V623A:AD:(Pile:up)", "WGS:JAK1:T1868C:V623A")
结果:
triplet1
"SQN:IDH2:G515T:R172M", "WES:IDH2:G515T:R172M", "WGS:IDH2:G515T:R172M"
triplet2
"SQN:JAK1:A1432T:T478S","WES:JAK1:A1432T:T478S","WGS:JAK1:A1432T:T478S",
triplet3
"SQN:JAK1:T1868C:V623A","WES:JAK1:T1868C:V623A","WGS:JAK1:T1868C:V623A"
所以我可以简单地将函数调用为Triplet1,Triple 2,Triple3 ...
我们可以使用grepl
获得不具有'P(p)ile:up'或'AD'(最后)的字符串的逻辑索引。 用“ i1”子集“ mycols”。 创建使用分组变量sub
通过删除与所述字母字符包括第一启动前缀部分:
然后split
的“mycols1”。
i1 <- !grepl('(?i)(P)ile|AD$', mycols)
mycols1 <- mycols[i1]
split(mycols1, sub('[^:]+:', '', mycols1))
#$`IDH2:G515T:R172M`
#[1] "SQN:IDH2:G515T:R172M" "WES:IDH2:G515T:R172M" "WGS:IDH2:G515T:R172M"
#$`JAK1:A1432T:T478S`
#[1] "SQN:JAK1:A1432T:T478S" "WES:JAK1:A1432T:T478S" "WGS:JAK1:A1432T:T478S"
#$`JAK1:T1868C:V623A`
#[1] "SQN:JAK1:T1868C:V623A" "WES:JAK1:T1868C:V623A" "WGS:JAK1:T1868C:V623A"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.