Граф в dplyr дает разные результаты - PullRequest
0 голосов
/ 03 октября 2018

Я борюсь со странным поведением подсчета в dplyr. Учитывая 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 голосов
/ 03 октября 2018

Для второго результата канал %>% вставляет преобразованный df в первый аргумент, таким образом суммируя все три столбца (x1, x2 и n) и добавленный столбец (* 1006)*).То, что вы делаете, составляет:

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

Если вы хотите избежать вставки, заключительный вызов можно заключить в фигурные скобки:

df %>% group_by(x1, x2) %>% count %>% {sum(.$n)}
[1] 6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...