【发布时间】:2017-06-20 04:52:57
【问题描述】:
我有一个非常大的文件,具有以下基本格式,并带有许多附加字段:
posA,id1,id2,posB,id3,name,(n additional fields)
1,ENST7,ENSP93,1,ENSG92,Gene1
2,ENST25;ENST76;ENST35,ENSP91;ENSP77;ENSP78,515;544;544,ENSG765,Gene2
3,ENST25;ENST76;ENST35,ENSP91;ENSP77;ENSP78,515;544;544,ENSG765,Gene2
4,ENST54;ENST93,ENSP83;ENSP36,1864;722,ENSG48,Gene3
5,ENST54;ENST93,ENSP83;ENSP36,1864;722,ENSG48,Gene3
6,ENST54;ENST93,ENSP83;ENSP36,1864;722,ENSG48,Gene3
第一行 (posA=1) 的每一列都有一个条目,不需要修改。对于某些列的多个条目数量可变的行,对于第三行 (posA=2),“id1”的第一个条目 (ENST25) 与“id2”的第一个条目 (ENSP91) 和第一个条目配对对于“posB”(515)等,但具有单个条目的列(例如,“posA”、“id3”、“name”)适用于第 2-4 列中的所有配对条目。除了第 2-4 列之外,一些字段也很少包含多个条目。
我想将包含多个条目的列拆分为单独的行,同时保留其他列中的数据,如下所示:
posA,id1,id2,posB,id3,name,(n additional fields)
1,ENST7,ENSP93,1,ENSG92,Gene1
2,ENST25,ENSP91,515,ENSG765,Gene2
2,ENST76,ENSP77,544,ENSG765,Gene2
2,ENST35,ENSP78,544,ENSG765,Gene2
3,ENST25,ENSP91,515,ENSG765,Gene2
3,ENST76,ENSP77,544,ENSG765,Gene2
3,ENST35,ENSP78,544,ENSG765,Gene2
4,ENST54,ENSP83,1864,ENSG48,Gene3
4,ENST93,ENSP36,722,ENSG48,Gene3
...
解决这个问题的最佳方法是什么?
谢谢!
【问题讨论】:
-
欢迎来到 StackOverflow。你需要解释更多关于配对的信息。请提供更多示例输入。对我来说,现有的解释和单个示例不足以理解语法。我发现了
;而不是,,但我预计会分成2,c,+和2,d,e,f,+。还请说明您使用的语言并展示您自己的编码尝试,以免给人留下只是在寻找免费编码服务的印象。强烈推荐使用tour,您绝对应该阅读How to Ask。