Как создать новый столбец и добавить количество поездок в день в R - PullRequest
0 голосов
/ 01 декабря 2018

У меня есть набор данных ниже (с большим количеством столбцов), и я хотел бы создать новый столбец и добавить туда количество поездок в день.Я думаю, мне нужно посчитать столбец «Дата», я пробовал несколько кодов, но безуспешно.

Trip Duration  Date         Start Station ID
680            01/01/2017        495
1282           01/01/2017        498
648            01/01/2017        333
632            02/01/2017        348
583            02/01/2017        958
589            03/01/2017        019
584            03/01/2017        496
867            03/01/2017        400
594            01/02/2017        419
587            01/02/2017        409
948            02/02/2017        395
476            02/02/2017        598

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Вы можете агрегировать их таким образом, а затем объединить с вашими данными.

Используя данные Bruno Pinheiro, но переименовав столбец дат:

library(dpyr)
colnames(df)[2] <-'date_trip'                                            # renaming the 2 column                                  
dats <- df %>% group_by(date_trip) %>% summarise(num_of_trips = n()      # count the trip
                                    )
dats
# A tibble: 5 x 3
  date_trip  num_of_trips 
  <fct>             <int>      
1 01/01/2017            3       
2 01/02/2017            2       
3 02/01/2017            2       
4 02/02/2017            2         
5 03/01/2017            3  
0 голосов
/ 01 декабря 2018

Давайте сначала сделаем ваши данные воспроизводимыми.Всегда беспокоится об этом.Очень важно предложить воспроизводимый пример для тех, кто мог бы потратить некоторое время на помощь.

df <- read.table(
  text = "
  Trip_Duration  Date         Start_Station_ID
  680            01/01/2017        495
  1282           01/01/2017        498
  648            01/01/2017        333
  632            02/01/2017        348
  583            02/01/2017        958
  589            03/01/2017        019
  584            03/01/2017        496
  867            03/01/2017        400
  594            01/02/2017        419
  587            01/02/2017        409
  948            02/02/2017        395
  476            02/02/2017        598
  ", header = TRUE)

Используя dplyr, вы можете делать то, что хотите, вот так:

df %>% 
  group_by(Date) %>% 
  mutate(Trips = n()) %>% 
  ungroup()

# A tibble: 12 x 4
   Trip_Duration Date       Start_Station_ID Trips
           <int> <fct>                 <int> <int>
 1           680 01/01/2017              495     3
 2          1282 01/01/2017              498     3
 3           648 01/01/2017              333     3
 4           632 02/01/2017              348     2
 5           583 02/01/2017              958     2
 6           589 03/01/2017               19     3
 7           584 03/01/2017              496     3
 8           867 03/01/2017              400     3
 9           594 01/02/2017              419     2
10           587 01/02/2017              409     2
11           948 02/02/2017              395     2
12           476 02/02/2017              598     2

Сначала мы group_by(Date), который является целевой переменной для частоты поездок.После того, как мы используем оператор n() внутри mutate() для подсчета каждый день, добавляем результаты в новую переменную с именем Trips.Наконец мы ungroup() фрейм данных.

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