私は、データ持っているDate
だけでなく、をTime enter
してTime exit
。これらの後者の2つは、このようなデータが含まれています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
。
これは可能ですか、それとも計算のために毎回同じ日付を追加するだけですか?これは少し厄介なようです!
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
グラフィック:
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
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加