首页 > 解决方案 > 如何根据R中的一个列将数据帧拆分为多个df

问题描述

我有一个像这样的df:

chr pos reptime diff
chr1    35000   0.299974    0
chr1    45000   0.300823    0.000849
chr1    55000   0.30181 0.000987
chr2    65000   0.302636    0.000826
chr2    75000   0.303478    0.000842
   ....

我想为每个 chrm 单独设置一个 df。

df_chr1

chr pos reptime diff
chr1    35000   0.299974    0
chr1    45000   0.300823    0.000849



df_chr2
chr pos reptime diff
chr2    65000   0.302636    0.000826
chr2    75000   0.303478    0.000842

到目前为止我所做的是:

tsv <- read_delim("outprefix_window.reptime.tsv", 
                       "\t", escape_double = FALSE, col_names = TRUE, 
                       trim_ws = TRUE)

chr1 <- tsv[tsv$chr == "chr1", ]
chr2 <- tsv[tsv$chr == "chr2", ]
chr3 <- [tsv$chr == "chr3", ]
.....

但我很确定有一种更快的方法可以做到这一点,所以请,如果有人可以给我任何优化它的建议,我将不胜感激!谢谢!

标签: rdataframesplit

解决方案


推荐阅读