R dplyr不同函数不能使用.keep_all = TRUE

时间:2019-12-09 04:08:38

标签: r dplyr distinct

我有以下类型的对象testTable: [1]“ tbl_Microsoft SQL Server”“ tbl_dbi”“ tbl_sql”“ tbl_lazy”“ tbl” 当我想基于一个列来删除表,而保留所有其他列时,我使用testTable %>% distinct(oneColumn, .keep_all = TRUE)。但是我总是会收到下面的错误。我检查了互联网,找不到其他人遇到相同的错误。我如何实现我的目标?谢谢。

错误:如果.keep_all为FALSE,则只能找到指定列的不同值

如果我删除.keep_all = TRUE,则查询有效,但仅返回oneColumn。

1 个答案:

答案 0 :(得分:0)

说您的数据如下:

tribble(~OneColumn, ~AnotherColumn,
        "A",        1,
        "A",        2,
        "A",        3,
        "B",        4,
        "B",        5,
        "C",        6,
        "C",        7)

OneColumn中的唯一值是A,B和C,因此结果将具有这些值的三行。但是,例如对于结果为OneColumn值为A的行,您的代码没有指定要使用的AnotherColumn值-它可以为1、2或3。

相反,您需要按OneColumn分组并汇总(汇总)所有其他列。例如,要为所有其他列的OneColumn的每个值使用最小值,可以使用testTable %>% group_by(OneColumn) %>% summarize_all(min)