library(data.table)
library(dplyr)
library(ggplot2)
library(ranger)
library(tidyr)
library(scatterplot3d)

fb <- fread("../input/train.csv", integer64 = "character", showProgress = FALSE)

# If time is represented by second, what is the value of Day, Hour, minute, and second
# that it represent (calculating for the largest value of time)
day1 <- max(fb$time)%/%86400
hour1 <- (max(fb$time)%%86400)%/%3600
min1 <- ((max(fb$time)%%86400)%%3600)%/%60
sec1 <- ((max(fb$time)%%86400)%%3600)%%60
c(day1,hour1,min1,sec1)
#-------------------------------
# What about time representing minutes?
day2 <- max(fb$time)%/%1440
hour2 <- (max(fb$time)%%1440)%/%60
min2 <- (max(fb$time)%%1440)%%60
c(day2,hour2,min2)
#-----------------------------------
#converting time values to secod so as.POSIXct.numeric can change it to a timestamp.
# this function considers the numeric value as second
day3 <- max(fb$time*60)%/%86400
hour3 <- (max(fb$time*60)%%86400)%/%3600
min3 <- ((max(fb$time*60)%%86400)%%3600)%/%60
sec3 <- ((max(fb$time*60)%%86400)%%3600)%%60
c(day3,hour3,min3,sec3)
#------------------------------
min_time <- as.POSIXct.numeric(min(fb$time)*60, origin = "2015-01-01", tz="UTZ")
max_time <- as.POSIXct.numeric(max(fb$time)*60, origin = "2015-01-01", tz="UTZ")
#-------------------------------
fb$datetime <- as.POSIXct.numeric(fb$time*60, origin = "2015-01-01", tz="UTZ")
fb$hour <- hour(fb$datetime)
fb$day <- wday(fb$datetime)
fb$year <- year(fb$datetime)
head(fb)


