У меня есть набор данных x_output
который выглядит следующим образом:R несколько столбцов группы по
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» в каждой строке, не правильное время для каждой отдельной строки.
Во-вторых, мне нужно иметь 3-стороннюю группировку, чтобы найти среднее значение wait_time для данного города, рабочего дня и времени. Это довольно просто сделать в 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' в ожидании и только один город и только один день. С этой датой вам не поможет. – SabDeM
Жаль об этом! Исправлено. Я проверю это в ближайшее время. –
Должно быть больше похоже на 'sapply (strsplit (as.character (x_output $ timestamp), split = ""), '[', 2) 'для извлечения второго элемента из каждого вектора в списке. – MrFlick