为什么n_distinct提供不同的结果?

时间:2017-03-19 14:52:37

标签: r dplyr

我认为以下两种用法应该提供相同的结果。显然不是。有人可以帮忙解释一下吗?

fr = data.frame(A=c(1,2,3,1),B=c(T,F,T,F) )

> fr  %>% n_distinct(.$A)
[1] 4

> n_distinct(fr$A)
[1] 3

2 个答案:

答案 0 :(得分:2)

fr %>% n_distinct(.$A)相当于n_distinct(fr, fr$A),它将评估整个数据框,而不仅仅是A列。

尝试fr %>% n_distinct(),然后尝试fr$A %>% n_distinct()为自己查看差异。

答案 1 :(得分:0)

我们需要提取“A”列,然后应用n_distinct

fr %>%
   .$A %>%
    n_distinct