我想转换/修改数据框的内容。基本上我有一个如下数据框:

        bins      pval
1   2L:1:150 0.9224217
2 2L:151:300 0.9478824
3 2L:301:450 0.9671139
4 2L:451:600 0.9280847
5 2L:601:750 0.9698584
6 2L:751:900 0.9725379


我想转换/修改成另一个这样的数据框,在这里我将“ bins”列(第一行)的内容分成150个包含相同值的行。以此类推,第二行。

    chr  pos    pval
1   2L   1 0.9224217
2   2L   2 0.9224217
3   2L   3 0.9224217
4   2L   4 0.9224217
5   2L   5 0.9224217
...
150  2L   150 0.9224217
151  2L   151 0.9478824
152  2L   152 0.9478824
153  2L   153 0.9478824
etc...


任何帮助表示赞赏,

最佳答案

我担心,这个快速答案可能太具体了,可能需要概括。假设第一个数据帧名为“ df1”:

data.frame(chr =“ 2L”,pos = 1:(150 * NROW(df1)),pval = rep(df1 $ pval,每个= 150))

参数回收应该使“ chr”足够长而没有rep函数。

编辑以回复评论。如果重复长度始终为150,则修复很容易:

data.frame(chr = rep(substr(df1$bins, 1,2), each=150),
           pos = 1:(150*NROW(df1)),
           pval = rep(df1$pval, each=150) )

10-06 05:52