繁体   English   中英

如何制作一组三元组的列并对其应用功能

[英]How to make triplet set of columns and apply function to it

我有一个mycols的数据mycols 您可以看到mycols具有^SQN^WES^WGS列集。 我想以相同的顺序制作SQNWESWGS列的三元组(我不想包含(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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM