我在试着创建一个房间用的热图数据框.
id | room | day | start | finish |
---|---|---|---|---|
1 | ROOM A | Mon | 09:00:00 | 11:00:00 |
2 | ROOM A | Tue | 09:00:00 | 10:00:00 |
3 | ROOM A | Mon | 10:00:00 | 14:30:00 |
4 | ROOM B | Wed | 09:00:00 | 11:00:00 |
df <- data.frame(id = c(1:4),
room = c("room a", "room a", "room a", "room b"),
day = c("Mon", "Tue", "Mon", "Wed"),
start = c("09:00", "09:00", "10:00", "09:00"),
end = c("11:00", "10:00", "14:30", "11:00"))
转换为数据帧,我可以将其转换为热图,例如:
room | day | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
---|---|---|---|---|---|---|---|---|---|---|
ROOM A | Mon | 1 | 2 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
ROOM A | Tue | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ROOM A | Wed | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ROOM A | Thu | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ROOM A | Fri | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ROOM B | Mon | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ROOM B | Tue | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ROOM B | Wed | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ROOM B | Thu | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ROOM B | Fri | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
对于该时段内的每一次预订,小时窗口应递增(或计为使用了整整一小时的半小时).预订了大约2000个房间,大约50个房间.
我已经try 了一个可怕的嵌套循环,循环遍历每个活动ID、一周中的哪一天、每个时隙,但没有喜悦(我太尴尬了,不敢在这里输入代码!)我怀疑矢量化函数可能会赢,如果有人有时间的话?在此之前,我非常感谢您.