Как считать экземпляры на ID в день в R? - PullRequest
1 голос
/ 28 октября 2019

Я хочу посчитать все уникальные идентификаторы на дату в R. Однако я не знаю, как этого добиться.

В настоящее время у меня есть набор данных, который выглядит следующим образом:

ID DateTime
2  2019-10-6
4  2019-10-6
3  2019-10-6
4  2019-10-6
3  2019-10-9
2  2019-10-9
2  2019-10-9

Из этого я попытался получить фрейм данных, чтобы получить следующий результат:

ID DateTime    Count
2  2019-10-6   1
3  2019-10-6   1
4  2019-10-6   2
2  2019-10-9   2
3  2019-10-9   1

Однако я пробовал много вариантов, работающих с агрегатными агрегатными функциями, но всякий раз, когда я пытаюсья получаю такие ошибки, как:

  Error in UseMethod("summarise_") : 
  no applicable method for 'summarise_' applied to an object of class "Date" 

Мой R немного заржавел, но я понятия не имею, как этого добиться, и поиск в интернете тоже не помог.

Заранее спасибо!

Ответы [ 3 ]

3 голосов
/ 28 октября 2019

И это (конечно) также можно сделать способом data.table

dt <- fread("ID DateTime
2  2019-10-6
4  2019-10-6
3  2019-10-6
4  2019-10-6
3  2019-10-9
2  2019-10-9
2  2019-10-9")

dt[, .( count = .N), by = .(ID, DateTime)][]

#    ID  DateTime count
# 1:  2 2019-10-6     1
# 2:  4 2019-10-6     2
# 3:  3 2019-10-6     1
# 4:  3 2019-10-9     1
# 5:  2 2019-10-9     2
3 голосов
/ 28 октября 2019

Простое решение с dplyr:

library(dplyr)

dates <- c("2019-10-6","2019-10-6","2019-10-6","2019-10-6","2019-10-9","2019-10-9","2019-10-9")
id <- c(2,4,3,4,3,2,2)

dat<-tibble(id,dates)

dat %>%
  count(id,dates)
2 голосов
/ 28 октября 2019

aggregate не так уж сложно использовать, просто помните, что вам нужно что-то для агрегирования, в случае ниже, имен строк фрейма данных. Я приведу столбец dates к классу "Date".

dates <- as.Date(c("2019-10-6","2019-10-6","2019-10-6","2019-10-6","2019-10-9","2019-10-9","2019-10-9"))
id <- c(2,4,3,4,3,2,2)

dat<-data.frame(id,dates)
aggregate(row.names(dat) ~ id + dates, dat, length)
#  id      dates row.names(dat)
#1  2 2019-10-06              1
#2  3 2019-10-06              1
#3  4 2019-10-06              2
#4  2 2019-10-09              2
#5  3 2019-10-09              1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...