##################day time function
daytime<- function(data4=bikedata){
a<- strptime(data4$Start.Date,format="%d/%m/%Y %R",tz="UTC")
b<- format(a, "%R")
Time <- hour(hm(b))
timeofday <- hour(hm("00:00", "5:00", "12:00", "18:00", "23:59"))
names <- c("Night", "Morning", "Afternoon", "Evening")
z<-cut(x=Time, breaks=timeofday, labels=names, include.lowest=TRUE)
return(z)
}
#######################################################season
Season <- function(data2) {
d<- data2$Start.Date
WS <- as.Date("21/12/2017", format = "%d/%m/%Y") # Winter
SE <- as.Date("20/3/2017", format = "%d/%m/%Y") # Spring
SS <- as.Date("21/6/2017", format = "%d/%m/%Y") # Summer
FE <- as.Date("22/9/2017", format = "%d/%m/%Y") # Autumn
ifelse (d >= WS | d < SE, "Winter",
ifelse (d >= SE & d < SS, "Spring",
ifelse (d >= SS & d < FE, "Summer", "Autumn")))
}
bikedata$Daytime<- daytime(data4=bikedata)
bikedata$Start.Date<- as.Date(strptime(bikedata$Start.Date,
format="%d/%m/%Y %H:%M",tz="UTC"))
bikedata$weekdays<- wday(bikedata$Start.Date,label = T)
bikedata$weekdays<- factor(bikedata$weekdays,ordered = FALSE)
bikedata$season<-as.factor(Season(data2=bikedata))
str(bikedata)
## Classes 'tbl_df', 'tbl' and 'data.frame': 8434530 obs. of 9 variables:
## $ X1 : chr "1:1" "1:2" "1:3" "1:4" ...
## $ Duration : int 660 660 600 660 600 420 420 480 540 360 ...
## $ End.Date : chr "05/01/2017 07:15" "04/01/2017 16:16" "04/01/2017 07:27" "05/01/2017 16:13" ...
## $ EndStation.Id : int 819 217 819 217 819 246 433 162 358 427 ...
## $ Start.Date : Date, format: "2017-01-05" "2017-01-04" ...
## $ StartStation.Id: int 217 819 217 273 217 433 594 246 246 66 ...
## $ Daytime : Factor w/ 4 levels "Night","Morning",..: 2 3 2 3 2 4 4 3 3 3 ...
## $ weekdays : Factor w/ 7 levels "Sun","Mon","Tues",..: 5 4 4 5 6 5 5 5 4 6 ...
## $ season : Factor w/ 4 levels "Autumn","Spring",..: 4 4 4 4 4 4 4 4 4 4 ...
## - attr(*, "spec")=List of 2
## ..$ cols :List of 6
## .. ..$ X1 : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ Duration : list()
## .. .. ..- attr(*, "class")= chr "collector_integer" "collector"
## .. ..$ End.Date : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ EndStation.Id : list()
## .. .. ..- attr(*, "class")= chr "collector_integer" "collector"
## .. ..$ Start.Date : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ StartStation.Id: list()
## .. .. ..- attr(*, "class")= chr "collector_integer" "collector"
## ..$ default: list()
## .. ..- attr(*, "class")= chr "collector_guess" "collector"
## ..- attr(*, "class")= chr "col_spec"
head(bikedata,20)
## # A tibble: 20 x 9
## X1 Duration End.Date EndStation.Id Start.Date
## <chr> <int> <chr> <int> <date>
## 1 1:1 660 05/01/2017 07:15 819 2017-01-05
## 2 1:2 660 04/01/2017 16:16 217 2017-01-04
## 3 1:3 600 04/01/2017 07:27 819 2017-01-04
## 4 1:4 660 05/01/2017 16:13 217 2017-01-05
## 5 1:5 600 06/01/2017 07:26 819 2017-01-06
## 6 1:6 420 05/01/2017 21:12 246 2017-01-05
## 7 1:7 420 05/01/2017 20:52 433 2017-01-05
## 8 1:8 480 05/01/2017 13:08 162 2017-01-05
## 9 1:9 540 04/01/2017 14:31 358 2017-01-04
## 10 1:10 360 06/01/2017 14:07 427 2017-01-06
## 11 1:11 360 06/01/2017 12:46 66 2017-01-06
## 12 1:12 180 04/01/2017 18:16 674 2017-01-04
## 13 1:13 300 06/01/2017 08:51 804 2017-01-06
## 14 1:14 300 05/01/2017 19:43 674 2017-01-05
## 15 1:15 240 06/01/2017 17:09 674 2017-01-06
## 16 1:16 180 06/01/2017 23:39 128 2017-01-06
## 17 1:17 300 06/01/2017 19:13 589 2017-01-06
## 18 1:18 180 05/01/2017 07:53 127 2017-01-05
## 19 1:19 300 04/01/2017 18:16 537 2017-01-04
## 20 1:20 900 04/01/2017 17:54 506 2017-01-04
## # ... with 4 more variables: StartStation.Id <int>, Daytime <fctr>,
## # weekdays <fctr>, season <fctr>
sjp.frq(bikedata$weekdays)

sjp.frq(bikedata$Daytime)

sjp.frq(bikedata$season)

x<-plyr::count(bikedata,vars = c("Start.Date","Daytime","weekdays","season"))
colnames(x)[5]<- c("ntrips")
bikedata<-join(x,bikedata)
## Joining by: Start.Date, Daytime, weekdays, season
bikedata<- bikedata%>% dplyr::select("Start.Date","Daytime","weekdays","season","ntrips")
head(bikedata,20)
## Start.Date Daytime weekdays season ntrips
## 1 2017-01-04 Night Wed Winter 292
## 2 2017-01-04 Night Wed Winter 292
## 3 2017-01-04 Night Wed Winter 292
## 4 2017-01-04 Night Wed Winter 292
## 5 2017-01-04 Night Wed Winter 292
## 6 2017-01-04 Night Wed Winter 292
## 7 2017-01-04 Night Wed Winter 292
## 8 2017-01-04 Night Wed Winter 292
## 9 2017-01-04 Night Wed Winter 292
## 10 2017-01-04 Night Wed Winter 292
## 11 2017-01-04 Night Wed Winter 292
## 12 2017-01-04 Night Wed Winter 292
## 13 2017-01-04 Night Wed Winter 292
## 14 2017-01-04 Night Wed Winter 292
## 15 2017-01-04 Night Wed Winter 292
## 16 2017-01-04 Night Wed Winter 292
## 17 2017-01-04 Night Wed Winter 292
## 18 2017-01-04 Night Wed Winter 292
## 19 2017-01-04 Night Wed Winter 292
## 20 2017-01-04 Night Wed Winter 292
bikedata<- bikedata[!duplicated(bikedata),]
bikedata<- bikedata%>% dplyr::select("ntrips","weekdays","season","Daytime")
bikedata<- na.omit(bikedata)
str(bikedata)
## 'data.frame': 1148 obs. of 4 variables:
## $ ntrips : int 292 9487 9366 2810 325 10244 9752 3029 392 9950 ...
## $ weekdays: Factor w/ 7 levels "Sun","Mon","Tues",..: 4 4 4 4 5 5 5 5 6 6 ...
## $ season : Factor w/ 4 levels "Autumn","Spring",..: 4 4 4 4 4 4 4 4 4 4 ...
## $ Daytime : Factor w/ 4 levels "Night","Morning",..: 1 2 3 4 1 2 3 4 1 2 ...
head(bikedata,20)
## ntrips weekdays season Daytime
## 1 292 Wed Winter Night
## 293 9487 Wed Winter Morning
## 9780 9366 Wed Winter Afternoon
## 19146 2810 Wed Winter Evening
## 21956 325 Thurs Winter Night
## 22281 10244 Thurs Winter Morning
## 32525 9752 Thurs Winter Afternoon
## 42277 3029 Thurs Winter Evening
## 45306 392 Fri Winter Night
## 45698 9950 Fri Winter Morning
## 55648 6701 Fri Winter Afternoon
## 62349 1767 Fri Winter Evening
## 64116 453 Sat Winter Night
## 64569 4230 Sat Winter Morning
## 68799 6711 Sat Winter Afternoon
## 75510 2328 Sat Winter Evening
## 77838 925 Sun Winter Night
## 78763 4166 Sun Winter Morning
## 82929 6491 Sun Winter Afternoon
## 89420 1753 Sun Winter Evening
sjp.frq(bikedata$weekdays)
## Warning: This function will be removed in future versions of sjmisc and
## has been moved to package 'sjlabelled'. Please use sjlabelled::get_labels()
## instead.
## Warning: This function will be removed in future versions of sjmisc and
## has been moved to package 'sjlabelled'. Please use sjlabelled::get_label()
## instead.
## Warning: This function will be removed in future versions of sjmisc and
## has been moved to package 'sjlabelled'. Please use sjlabelled::get_labels()
## instead.

sjp.frq(bikedata$Daytime)
## Warning: This function will be removed in future versions of sjmisc and
## has been moved to package 'sjlabelled'. Please use sjlabelled::get_labels()
## instead.
## Warning: This function will be removed in future versions of sjmisc and
## has been moved to package 'sjlabelled'. Please use sjlabelled::get_label()
## instead.
## Warning: This function will be removed in future versions of sjmisc and
## has been moved to package 'sjlabelled'. Please use sjlabelled::get_labels()
## instead.

sjp.frq(bikedata$season)
## Warning: This function will be removed in future versions of sjmisc and
## has been moved to package 'sjlabelled'. Please use sjlabelled::get_labels()
## instead.
## Warning: This function will be removed in future versions of sjmisc and
## has been moved to package 'sjlabelled'. Please use sjlabelled::get_label()
## instead.
## Warning: This function will be removed in future versions of sjmisc and
## has been moved to package 'sjlabelled'. Please use sjlabelled::get_labels()
## instead.
