BASH中的<uniq>和R中的<unique>有什么区别?

问题描述 投票:0回答:1

我在BASH中使用uniq和在R中使用unique得到的结果是不同的,我的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行。

是什么原因造成的?

r bash count unique uniq
1个回答
1
投票

如果我们只想省略前一个重复的元素,我们可以使用一个选项 rleiddata.table

library(data.table)
library(dplyr)
df %>%
    mutate(new = rleid(samples, read_seq)) %>%
    distinct(new, .keep_all = TRUE) %>%
    select(-new)

1
投票

来自 R文档:

请注意,与Unix命令不同的是 uniq 这将省略重复的元素,而不仅仅是重复的元素行。也就是说,如果一个元素与之前的元素相等,而不仅仅是与之前的元素相等,就会被省略。关于后者,请参见 rle).

© www.soinside.com 2019 - 2024. All rights reserved.