Проблема с функцией `dplyr :: n_distinct` - PullRequest
0 голосов
/ 19 января 2019

В n_distinct Документация:

Это более быстрый и краткий эквивалент длины (уникальный (x))

Я пытаюсь:

library(dplyr)

df <- data.frame(x = c(10, 4, 1, 6, 3, 1, 1), y = c(letters[1:7]))

length(unique(df$x))
#[1] 5

n_distinct(df$x)
#[1] 5

И хорошо. Результаты идентичны.

Но:

df%>%
  n_distinct(.$x)
#[1] 7

В чем проблема с последней функцией?

1 Ответ

0 голосов
/ 19 января 2019

Когда вы делаете:

df %>% n_distinct(.$x)

Вы на самом деле делаете:

n_distinct(df, df$x)

В этом случае он вернетколичество отдельных строк df.

Если вы удалите столбец y, обратите внимание, что он даст тот же результат, что и первые две операции:

df[-2] %>% n_distinct(.$x)

Результат:

5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...