Here is a way:
day <- data[as.numeric(strftime(data$Data,"%H")) > 5 &
as.numeric(strftime(data$Data,"%H")) < 17,]
night <- data[as.numeric(strftime(data$Data,"%H")) < 5 |
as.numeric(strftime(data$Data,"%H")) > 17,]
strftime
returns a character vector, which is why it is nested inside as.numeric
here. From there it is just indexing.