Фильтруйте вопрос i R, удаляйте повторяющиеся значения и сохраняйте только минимальное значение - PullRequest
1 голос
/ 25 сентября 2019

Я пытаюсь использовать базу данных в R и мне нужно добавить несколько фильтров.На выбранных маршрутах вы должны изменить автобус, чтобы добраться до конечного пункта назначения.Я отфильтровал эти маршруты, но мне нужно удалить повторяющиеся значения и оставить минимальные значения.Таким образом, я могу видеть, сколько отправлений для выбранного пункта назначения.

Текущий код фильтра:

filterroutes <- c("5", "10")
busroutes <- database %>% filter(Route %in% filterroutes)

Таблица после фильтра на маршрутах 5 и 10

Route Time NDepartures
5      2   1
5      3   1
5      3   1
5      4   1
5      5   1
10     1   1
10     3   3
10     4   2
10     6   1
10     7   2

Я хочусохранить маршруты с уникальной отметкой времени и, если дубликат, сохранить с минимальной NDepartures.

должен возвращаться

Route Time NDepartures
5      2   1
5      3   1
5      3   1
5      4   1
5      5   1
10     1   1
10     6   1
10     7   2

Кто-то сказал мне, что я могу использовать NDepartures == min(NDepartures), но я не смогзаставить это работать.

1 Ответ

0 голосов
/ 25 сентября 2019
library(dplyr)
busroutes %>% 
   group_by(Time) %>% 
   #n() equals # of obs in each group "Time"
   filter(n()==1 | (n()>1 & NDepartures==min(NDepartures))) %>%
   ungroup()

# A tibble: 8 x 3
# Groups:   Time [7]
  Route  Time NDepartures
  <int> <int>       <int>
1     5     2           1
2     5     3           1
3     5     3           1
4     5     4           1
5     5     5           1
6    10     1           1
7    10     6           1
8    10     7           2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...