У меня есть набор данных x_output
, который выглядит так:
timestamp city wait_time weekday
2015-07-14 09:00:00 Boston 1.4 Tuesday
2015-07-14 09:01:00 Boston 2.5 Tuesday
2015-07-14 09:02:00 Boston 2.8 Tuesday
2015-07-14 09:03:00 Boston 1.6 Tuesday
2015-07-14 09:04:00 Boston 1.5 Tuesday
2015-07-14 09:05:00 Boston 1.4 Wednesday
Я хотел бы найти среднее wait_time
, сгруппированное по city
, weekday
и time
. В принципе, учитывая ваш город, каково среднее время ожидания, например, в понедельник? Тогда вторник?
У меня возникли трудности с созданием столбца time
с учетом x_output$timestamp
; В настоящее время я использую:
x_output$time <- strsplit(as.character(x_output$timestamp), split = " ")[[1]][2]
Однако это просто помещает «09:00» в каждую строку, а не правильное время для каждой отдельной строки.
Во-вторых, мне нужно иметь трехстороннюю группировку, чтобы найти среднее время ожидания с учетом города, дня недели и времени. Это то, что довольно просто сделать в python pandas, но я могу найти очень мало документации по этому вопросу в R (и, к сожалению, мне нужно сделать это в R, а не в python).
Я пытался использовать data.table
, но это не сработало. Есть ли простая функция, как в python pandas (например, df.groupby(['col1', 'col2', 'col3']).mean()
)?
df %>% group_by(city, weekday) %>% mutate(MeaD = mean(wait_time))
сdplyr
, но, пожалуйста, напишите полезный код. Ваш код имеет толькоNA
s времени ожидания и только один город и только один день. С этой датой помочь вам невозможно. - person SabDeM   schedule 16.07.2015sapply(strsplit(as.character(x_output$timestamp), split = " "),'[',2)
для извлечения второго элемента из каждого вектора в списке. - person MrFlick   schedule 16.07.2015timestamp
? ежедневно? каждые 12 часов? каждую неделю? - person SabDeM   schedule 16.07.2015timestamp
как дату и время. - person SabDeM   schedule 16.07.2015