Используя group_by () так же, как filter () в dplyr? - PullRequest
0 голосов
/ 28 августа 2018

по образцу data.frame:

df <- data.frame(V1 = c(1, 3, 4, NA, NA, 6, 9, NA, 10),
V2 = seq(1:9))

Использование group_by() в моде filter() дает следующие результаты:

df %>%
  group_by(miss = !is.na(V1)) %>%
  mutate(lag = V1 - lag(V1))

# A tibble: 9 x 4
# Groups:   miss [2]
     V1    V2 miss    lag
  <dbl> <dbl> <lgl> <dbl>
1    1.    1. TRUE    NA 
2    3.    2. TRUE     2.
3    4.    3. TRUE     1.
4   NA     4. FALSE   NA 
5   NA     5. FALSE   NA 
6    6.    6. TRUE     2.
7    9.    7. TRUE     3.
8   NA     8. FALSE   NA 
9   10.    9. TRUE     1.

Это именно то, что я хотел, но мне любопытно, намеревается ли он использовать group_by() также таким образом.

1 Ответ

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

Ради документального ответа на этот интересный вопрос - из комментариев, как указал @Joran, group_by можно использовать с выражениями. как указывал @avid_useR, он на самом деле не похож на filter, но больше похож на case_when, поскольку строки не удаляются.

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