我无法在任何地方找到如何在Dplyr中执行此操作的示例,但肯定可以这样做吗?
示例数据框:
x y z
this it 1
that them 2
that us 3
that you 4
瞄准这样的事情:
data %>%
filter(x %in% 'that') %>%
summarise(n_distinct(all dataframe cols))
要归还:
x y z
1 3 3
如果您只引用一列,它是否有效,但如何在不分别调用每列的n_distinct
的情况下返回所有列的不同值的数量?
答案 0 :(得分:3)
您可以使用summarise
和mutate
的范围变体,附加_all
,_at
,_if
。
data.frame(x = c("this", "that", "that", "that"),
y = c("it", "them","us","you"),
z = c(1,2,3,4),
stringsAsFactors = F) %>%
filter(x %in% "that") %>%
summarise_all(n_distinct)
答案 1 :(得分:1)
好的,我使用summarise_all
进行了解决。
data %>%
filter(x %in% 'that') %>%
summarise_all(funs(n_distinct(.)))