【问题标题】:Delete rows depends of colums values in another rows R删除行取决于另一行 R 中的列值
【发布时间】:2018-05-07 11:09:16
【问题描述】:

我有以下包含多个观察结果的数据框:


     CHR            END         START          REF         ALT
      1            1445         1446            G           A
      1            1445         1446            A           G
      3            2787         2787            T           -
      3            2787         2787            -           T

如果REF 列是-ALT 列匹配另一行的REF 列,而其他列保持相等,我想删除行。

在我的示例中,这就是所需的输出:

     CHR            END         START          REF         ALT
      1            1445         1446            G           A
      1            1445         1446            A           G
      3            2787         2787            T           -

我不确定如何连接不同行的索引

在数据框中,要删除的行总是在“母亲”行之后

【问题讨论】:

    标签: r


    【解决方案1】:

    你可以试试

    library(tidyverse)
    d %>% 
      unite(tmp, REF, ALT, remove = F) %>% 
      mutate(tmp=strsplit(tmp, "_") %>% map_chr(function(x) paste(sort(x), collapse ="_"))) %>% 
      group_by(CHR, END, START, tmp) %>% 
      mutate(n=ifelse(grepl("-", tmp), 1:n(), 1)) %>% 
      filter(n == 1) %>% 
      ungroup() %>% 
      select(-tmp, -n)
    # A tibble: 3 x 5
        CHR   END START REF   ALT  
      <int> <int> <int> <fct> <fct>
    1     1  1445  1446 G     A    
    2     1  1445  1446 A     G    
    3     3  2787  2787 T     - 
    

    这个想法是使用strsplitmap 方法添加一个标识符tmp 和排序的ALTREF 值。因此,我们可以使用相似行的计数来过滤重复项。

    数据

    d <- read.table(text=" CHR            END         START          REF         ALT
    
                    1            1445         1446            G           A
                    1            1445         1446            A           G
                    3            2787         2787            T           -
                    3            2787         2787            -           T", header=T)
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-10
    • 2021-08-13
    • 1970-01-01
    • 2021-12-01
    • 2016-07-11
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多