我有数据包括Date以及Time enter和Time exit.这后两种包含数据是这样的:08:02,12:02,23:45等.
我想操纵Time eXXX数据-例如,.减去Time enter从Time exit摸出时间,或绘制的分布Time enter和Time 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)
| 归档时间: |
|
| 查看次数: |
6682 次 |
| 最近记录: |