dplyr中的计数得出不同的结果

时间:2018-10-02 22:50:03

标签: r dplyr

我在dplyr中遇到了count的奇怪行为 赋予df。

df =
    tibble(
      x1 = c(1,1,2,2,3,3), 
      x2 = c(1, 1, 1, 2, 2, 2)
      )

为什么这样做

df %>% group_by(x1, x2) %>% count %>% .$n %>% sum

给出与此不同的结果吗?

df %>% group_by(x1, x2) %>% count %>% sum(.$n)

第一个给出正确的结果(6)。但是第二个是26?!

有人暗示为什么吗?

1 个答案:

答案 0 :(得分:2)

对于第二个结果,管道%>%将转换后的df插入第一个参数,从而将所有三列(x1x2和{{1 }}和添加的列(n)。您正在做什么:

.$n

如果要避免插入,可以在花括号中包含最后一个呼叫:

temp <- df %>% group_by(x1, x2) %>% count
sum(temp, temp$n)
[1] 26