我在tibble / data.frame上使用dplyr的distinct()
有问题。从文档中很明显,可以通过明确命名列名来使用它。我有一个包含100列以上的数据框,并且只想在子集中使用该功能。我的直觉说我将列名放在向量中,并将其用作与众不同的参数。但是distinct仅使用第一个向量元素
虹膜示例:
data(iris)
library(dplyr)
exclude.columns <- c('Species', 'Sepal.Width')
distinct_(iris, exclude.columns)
这不同于
exclude.columns <- c('Sepal.Width', 'Species')
distinct_(iris, exclude.columns)
我认为此操作没有区别。另一个选择是将data.frame子集化,然后使用distinct,然后再次与排除的列连接。但是我的问题是,是否还有仅使用一个功能的另一种选择?
答案 0 :(得分:0)
你的目标听起来不清楚。您是否试图获取除 $Species
和 $Sepal.Width
之外的所有列中的所有不同行?如果是这样,那就没有意义了。
假设两行在所有其他变量中都相同,除了 $Sepal.Width。以您描述的方式使用 distinct()
会丢弃第二行,因为它与第一行没有区别。除了它在您忽略的列中。
你需要重新考虑你的目标以及它是否有意义。
如果您只是担心重复行,那么
data %>%
distinct(across(everything()))
会解决问题。