В чем разница между <uniq>в BASH и <unique>в R? - PullRequest
1 голос
/ 07 мая 2020

Я получаю разные результаты с uniq в BASH по сравнению с unique в R. Мой df выглядит так (более 9 тысяч строк):

samples read_seq
ccd_x29 GCATTGGT
ccd_x29 GCATTGGT
ccd_x29 GCATTGGT
ccd_x20 GCCCGGCTAG
ccd_x19 GCATTGGTGGTT
ccd_x19 GCATTGGTGGTT

После bash uniq Я получаю 8811 строк и с df <- unique(df) я получаю 8803 строки.

Что вызывает это?

Ответы [ 2 ]

1 голос
/ 07 мая 2020

Если нас интересует исключение только предыдущего повторяющегося элемента, возможен вариант rleid из data.table

library(data.table)
library(dplyr)
df %>%
    mutate(new = rleid(samples, read_seq)) %>%
    distinct(new, .keep_all = TRUE) %>%
    select(-new)
1 голос
/ 07 мая 2020

Из документов R :

Обратите внимание, что, в отличие от команды Unix uniq, здесь отсутствуют дублированные, а не только повторяющиеся элементы / строки. То есть элемент опускается, если он равен любому предыдущему элементу, а не только если он равен непосредственно предыдущему. (Для последнего см. rle).

...