我有下面的数据集(带有更多列),我想创建一个新列并在其中添加每天的旅行次数。我想我必须计算“日期”列,我尝试了很少的代码,但没有成功。
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
非常感谢
答案 0 :(得分:1)
首先让您的数据可重现。总是对此担心。向reproducible example提供非常重要的建议,以供可能花费一些时间来帮助的人。
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()
数据帧。
答案 1 :(得分:1)
您可以通过这种方式汇总它们,然后将其与数据合并。
使用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