2017-10-11 2 views
1

Voici mon ensemble de données exempleHour en R

id hour 
1 15:10 
2 12:10 
3 22:10 
4 06:30 

Je dois trouver le plus tôt et dernière fois. La classe du hour est facteur. J'ai donc besoin de convertir le facteur en une classe appropriée, et de comparer les temps plus tôt et plus tard. J'ai essayé de formater le hour en utilisant le code ci-dessous, mais il n'a pas fonctionné comme prévu

format(as.Date(date),"%H:%M") 

Répondre

2

utilisation times de chron package

#Data 
xx 
# id hour 
#1 1 15:10 
#2 2 12:10 
#3 3 22:10 
#4 4 06:30 

library(chron) 
xx$hour = times(paste0(as.character(xx$hour), ":00")) 
xx 
# id  hour 
#1 1 15:10:00 
#2 2 12:10:00 
#3 3 22:10:00 
#4 4 06:30:00 

#Min and Max 
range(xx$hour) 
#[1] 06:30:00 22:10:00 

xx = structure(list(id = 1:4, hour = structure(c(3L, 2L, 4L, 1L), .Label = c("06:30", 
"12:10", "15:10", "22:10"), class = "factor")), .Names = c("id", 
"hour"), row.names = c(NA, -4L), class = "data.frame") 
1

Si tout ce que vous avez besoin est de trouver les premières (min) et dernières (max) fois, vous pouvez simplement convertir les temps en un caractère et utiliser min, max: par exemple,

hour <- c("15:10", "12:10", "22:10", "06:30") 
hour[which(hour == max(hour))] 

> "22:10"