R:如何处理没有约会的时间?

gis*_*sol 15 time r date

我有数据包括Date以及Time enterTime exit.这后两种包含数据是这样的:08:02,12:02,23:45等.

我想操纵Time eXXX数据-例如,.减去Time enterTime exit摸出时间,或绘制的分布Time enterTime exit,如,看看大多数记录是10:00前,或者如果大部分出口是17:00以后.

我看过的所有包都要求在时间之前有一个日期,例如01/02/2012 12:33.

这是可能的,还是我只是为了计算而每次都附加一个相同的日期?这看起来有点乱!

G. *_*eck 15

使用chron包中"times"类:

library(chron)

Enter <- c("09:12", "17:01")
Enter <- times(paste0(Enter, ":00"))

Exit <-  c("10:15", "18:11")
Exit <- times(paste0(Exit, ":00"))

Exit - Enter # durations

sum(Enter < "10:00:00") # no entering before 10am
mean(Enter < "10:00:00") # fraction entering before 10am

sum(Exit >  "17:00:00") # no exiting after 5pm
mean(Exit >  "17:00:00") # fraction exiting after 5pm

table(cut(hours(Enter), breaks = c(0, 10, 17, 24))) # Counts for indicated hours   
 ## (0,10] (10,17] (17,24] 
 ##      1       1       0 

table(hours(Enter))  # Counts of entries each hour
## 9 17 
## 1  1

stem(hours(Enter), scale = 2)
## The decimal point is at the |

##   9 | 0
##  10 | 
##  11 | 
##  12 | 
##  13 | 
##  14 | 
##  15 | 
##  16 | 
##  17 | 0
Run Code Online (Sandbox Code Playgroud)

显卡:

tab <- c(table(Enter), -table(Exit))  # Freq at each time.  Enter is pos; Exit is neg.
plot(times(names(tab)), tab, type = "h", xlab = "Time", ylab = "Freq")
abline(v = c(10, 17)/24, col = "red", lty = 2) # vertical red lines
abline(h = 0)  # X axis
Run Code Online (Sandbox Code Playgroud)

截图