如何通过R中唯一值的数量过滤数据

bax*_*axx 1 r dplyr

我想调查一些数据,并想提取出具有一定数量唯一值的所有功能,无论这些值是2、5、10等。

我不确定如何去做。

例如 :

tst = data.frame(
  a = c(1,1,1,0,0),
  b = c(1,2,3,3,3),
  c = c(1,2,3,4,4),
  d = c(1,2,3,4,5)
)
tst

tst %>% 
  filter(<variables with x unique values>)
Run Code Online (Sandbox Code Playgroud)

哪里x=2 会过滤到ax=3过滤到b等等

Ice*_*can 5

您可以使用select_ifn_distinct功能。

tst %>% 
  select_if(~n_distinct(.) == 2)
#   a
# 1 1
# 2 1
# 3 1
# 4 0
# 5 0
Run Code Online (Sandbox Code Playgroud)