我有一个来自单个.txt文件的大型 Dataframe ,其中有超过90,000行,跨越~85个唯一的字符ID:
| 区域|字符|中间位置|N位点|第一|
| - -|- -|- -|- -|- -|
| 小行星12323|一百零二|小行星37500|小行星20012| 0.387763单位|
| 小行星12323|一百零二|六二五○ ○|小行星17353| 0.359275单位|
| 小行星12323|一百零二|小行星87500|小行星20059| 0.360935单位|
| 小行星12323|一百零二|小行星112500|小行星20132| 0.447558单位|
| 小行星12323|一百零二|小行星137500|小行星17996| 0.476738美元|
| 小行星12323|一百零二|小行星162500|小行星20275| 0.363752单位|
| 小行星12323|一百零二|小行星187500|小行星13649|千分之五三零六一|
| 小行星12323|一百零三|小行星262500|小行星8897| 0.629894单位|
| 小行星12323|一百零三|小行星287500|小行星18855| 0.360819单位|
| 小行星12323|一百零三|小行星312500|小行星19559| 0.486737单位|
| 小行星12323|一百零三|小行星337500|小行星19973| 0.501365单位|
| 小行星12323|一百零四|小行星362500|小行星19102| 0.361309单位|
| 小行星12323|一百零四|小行星387500|小行星18688| 0.33万1698元|
| 小行星12323|一百零四|小行星412500|小行星18620| 0.548834单位|
我想做的是按chr ID分组,这样我就得到一个.txt文件,其中只包含属于唯一chr ID的行,105.txt,并且只包含那些匹配的行。因此文件102.txt看起来如下所示:
| 区域|字符|中间位置|N位点|第一|
| - -|- -|- -|- -|- -|
| 小行星12323|一百零二|小行星37500|小行星20012| 0.387763单位|
| 小行星12323|一百零二|六二五○ ○|小行星17353| 0.359275单位|
| 小行星12323|一百零二|小行星87500|小行星20059| 0.360935单位|
| 小行星12323|一百零二|小行星112500|小行星20132| 0.447558单位|
| 小行星12323|一百零二|小行星137500|小行星17996| 0.476738美元|
| 小行星12323|一百零二|小行星162500|小行星20275| 0.363752单位|
| 小行星12323|一百零二|小行星187500|小行星13649|千分之五三零六一|
我知道在R中我可以通过chrID拆分df:
df<-read.table('master_dataframe.txt', header=TRUE)
data_list <- split(df, f = df$chr)
head(df)
但是我如何用唯一的ID打印出每一个呢?谢谢你的任何建议/帮助!
2条答案
按热度按时间c6ubokkw1#
你可以列出所有的唯一ID,然后使用for循环遍历每个唯一的D,然后打印每次迭代的结果。
plupiseo2#
好的,事实证明这是非常直接的使用python。这是我最后做的。
所以,我把.txt文件的结构如上,然后使用一个python脚本来读取它,按chr ID分组,然后for循环遍历并获取每个唯一的chr ID,并将其打印到一个新的.txt文件中。它添加了一个新的第一列,其中包含主数据框中的行行号。我没有弄清楚如何在Python中防止这种情况,但使用了一些UNIX脚本来修复它:
可能是一些不好的东西,但它做到了。