Отображение R по уникальному значению и частоте - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть набор данных, такой как приведенный ниже, за исключением около 5 миллионов наблюдений.Я уже отфильтровал даты, основанные на времени, когда они были записаны в предыдущем коде, чтобы включить только звонки, сделанные в рабочее время.Теперь я хочу разделить даты на основе WORKERCALL_ID, чтобы увидеть список всех уникальных дат для каждого работника и количество раз, которое каждый WORKERCALL_ID отображается на каждую дату (количество вызовов на дату, разделенных каждым WORKERCALL_ID.Я попытался сделать это, используя матрицу непредвиденных обстоятельств, а затем изменив ее на фрейм данных, но файл настолько велик, что мой сеанс R. всегда прерывается. У кого-нибудь есть идеи, как это сделать?

WORKERCALL_ID     DATE
124789244   02-01-2014
128324834   05-01-2014
124184728   06-10-2014

Ниже приведен пример желаемого вывода для каждого идентификатора WORKERCALL_ID и даты. Моя конечная цель - иметь возможность установить поднабор результата и удалить строки / идентификаторы с высокой частотой вызовов.

WORKERCALL_ID   DATE    FREQ
124789244   02-01-2014    4
124789244   02-23-2014    1

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Я бы использовал dplyr::count

library(dplyr)
count(df,WORKERCALL_ID,DATE)
0 голосов
/ 18 ноября 2018

Два варианта:

table(df$WORKERCALL_ID, df$DATE)

Или, используя dplyr (также включая запрошенную добавленную фильтрацию для идентификаторов, которые имеют частоты выше 5):

df %>% group_by(WORKERCALL_ID, DATE) %>% summarize(freq=n()) %>% group_by(WORKERCALL_ID) %>% 
  filter(!any(freq>5))

Пример:

rbind(as.data.frame(df),data.frame(WORKERCALL_ID=128324834, DATE="Moose",freq=6,stringsAsFactors = FALSE)) %>% group_by(WORKERCALL_ID) %>% filter(!any(freq>5))
# A tibble: 2 x 3
# Groups:   WORKERCALL_ID [2]
  WORKERCALL_ID DATE        freq
          <dbl> <chr>      <dbl>
1    124184728. 06-10-2014    1.
2    124789244. 02-01-2014    1.

Обратите внимание, как идентификатор 128324834 удаляется из окончательного результата.

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