我在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?!
有人暗示为什么吗?
答案 0 :(得分:2)
对于第二个结果,管道%>%
将转换后的df
插入第一个参数,从而将所有三列(x1
,x2
和{{1 }}和添加的列(n
)。您正在做什么:
.$n
如果要避免插入,可以在花括号中包含最后一个呼叫:
temp <- df %>% group_by(x1, x2) %>% count
sum(temp, temp$n)
[1] 26