筛选具有相等值的列

Wal*_*Yo_ 2 r dplyr tidyverse

如果 df 的至少两列相等,但以动态方式过滤数据帧。
假设以下数据框:

data.frame(Var1 = c(1,1,1,2,3,4,4),Var2=c(1,2,6,8,2,5,4),Var3=c(1,3,5,6,7,5,6))
  Var1 Var2 Var3
1    1    1    1
2    1    2    3
3    1    6    5
4    2    8    6
5    3    2    7
6    4    5    5
7    4    4    6
Run Code Online (Sandbox Code Playgroud)

我想保留根本不相等的值,因此如果至少有两列按行相等,它们将被删除。最终结果应该是:

  Var1 Var2 Var3
2    1    2    3
3    1    6    5
4    2    8    6
5    3    2    7
Run Code Online (Sandbox Code Playgroud)

由于我的数据框中的列数应该增加,因此如果它是受 mutate(across()) 语句启发的动态内容,那就更好了。

非常感谢

小智 5

library(tidyverse) \n\ndf %>% \n  rowwise() %>% \n  filter(n_distinct(c_across()) > 2)\n\n# A tibble: 4 \xc3\x97 3\n# Rowwise: \n   Var1  Var2  Var3\n  <dbl> <dbl> <dbl>\n1     1     2     3\n2     1     6     5\n3     2     8     6\n4     3     2     7\n
Run Code Online (Sandbox Code Playgroud)\n