r - 按相似行折叠数据框

标签 r bioinformatics collapse reshape

我想折叠以下数据框

df

chr start    stop        gain loss pvalue_gain pvalue_loss
6 68838806   68857819    0    6    1.00000000  0.05105438
9 29779560   29788411    5    1    0.02320654  1.00000000
9 29788411   29809428    5    1    0.02320654  1.00000000
9 29809428   29831788    5    1    0.02320654  1.00000000
9 29831788   29899917    4    1    0.05145798  1.00000000
10   650294    727180    7    0    0.07759025  1.00000000

我想折叠每个 chr,其中连续行上的增益、损失、pvalue_gain 和 pvalue_loss 数字相同。但是,对于数据框折叠时的这些连续行,我想使用这些连续行的第一行的起始编号和这些连续行的最后一个停止编号。

例如-

chr start    stop        gain loss pvalue_gain pvalue_loss
9 29779560   29788411    5    1    0.02320654  1.00000000
9 29788411   29809428    5    1    0.02320654  1.00000000
9 29809428   29831788    5    1    0.02320654  1.00000000

将折叠为

chr start    stop        gain loss pvalue_gain pvalue_loss
9 29779560   29831788    5    1    0.02320654  1.00000000

最终输出:

chr start    stop        gain loss pvalue_gain pvalue_loss
6 68838806   68857819    0    6    1.00000000  0.05105438
9 29779560   29831788    5    1    0.02320654  1.00000000
9 29831788   29899917    4    1    0.05145798  1.00000000
10   650294    727180    7    0    0.07759025  1.00000000

我不确定如何使用聚合函数来执行此操作,希望能提供任何帮助。谢谢!

最佳答案

您可以使用 data.table 包中的 unique 并进行一些修改:

library(data.table)
unique(as.data.table(df)[, stop := stop[.N], 
                           key = .(gain, loss, pvalue_gain, pvalue_loss)])

#    chr    start     stop gain loss pvalue_gain pvalue_loss
# 1:   6 68838806 68857819    0    6  1.00000000  0.05105438
# 2:   9 29831788 29899917    4    1  0.05145798  1.00000000
# 3:   9 29779560 29831788    5    1  0.02320654  1.00000000
# 4:  10   650294   727180    7    0  0.07759025  1.00000000

关于r - 按相似行折叠数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27947089/

相关文章:

r - 按时差压扁多行

javascript - 单击 Shiny 的操作按钮后,将光标聚焦在 textArea 中

r - 如何在同一个散点图上使用 geom_vline() 和 geom_hline 避免图例中的交叉效应?

r - 如何在ggplot中向条形图添加文本

string - 计算子字符串在文件中出现的次数并将其放在新列中

python - (生物医学)词干的所有可能词形补全

graph - 如何一次获取多个rna序列的图特征值?

android - 展开状态下没有阴影的 CollapsingToolbarLayout

python - 'reticulate' r-package 导入 python 脚本时出错

ElasticSearch 映射折叠/对分组文档执行操作的结果