这也是数据的输出结果:
x=c("Wed: 9:00 AM-1:00 PM;", "Sat: 9:00 AM-1:00 PM;", NA, "Wed: 3:00 PM-6:00 PM;Sat: 8:00 AM-1:00 PM;",
"Tue:8:00 am - 5:00 pm;Sat:8:00 am - 8:00 pm;", "Tue: 3:30 PM-6:30 PM;",
"Tue: 10:00 AM-7:00 PM;", "Fri: 8:00 AM-11:00 AM;", "Sat: 9:00 AM-1:00 PM;",
"Sat: 9:00 AM-1:00 PM;", "Wed: 2:30 PM-6:30 PM;", "Tue: 8:00 AM-6:00 PM;",
"Wed:3:00 pm - 7:00 pm;", "Thu: 3:00 PM-6:30 PM;", "Thu: 3:00 PM-7:00 PM;",
"Sat: 8:00 AM-11:00 AM;", "Sat: 8:00 AM-12:00 PM;", "Sat: 8:30 AM-1:00 PM;",
"Wed: 11:00 AM-6:00 PM;Thu: 11:00 AM-6:00 PM;Fri: 11:00 AM-6:00 PM;Sat: 11:00 AM-6:00 PM;",
"Fri: 7:30 AM-12:00 PM;", "Tue: 2:00 PM-6:00 PM;", "Sat: 8:30 AM-2:00 PM;",
"Sun: 9:00 AM-1:00 PM;", "Wed: 1:00 PM-5:00 PM;", "Tue: 2:00 PM-6:00 PM;",
"Thu: 3:30 PM-6:30 PM;", "Thu: 11:00 AM-3:00 PM;Fri: 11:00 AM-3:00 PM;Sat: 8:00 AM-3:00 PM;",
"Sat: 8:00 AM-2:00 PM;", "Sun: 9:00 AM-1:00 PM;", "Sun: 10:00 AM-2:00 PM;",
"Sat: 7:00 AM-12:00 PM;", "Thu: 2:00 PM-6:00 PM;", "Thu: 4:00 PM-6:30 PM;",
"Thu: 4:00 PM-9:00 PM;", "Sat:8:30 AM - 1:30 PM;", "Tue: 3:00 PM-7:00 PM;",
"Tue: 1:00 PM-5:00 PM;", NA, NA, "Wed: 1:00 PM-5:00 PM;", "Wed: 8:00 AM-5:00 PM;Sat: 8:00 AM-5:00 PM;")
我想知道哪些公司在下午2点之前关闭,哪些公司每天开放时间不到4小时。对于一周内营业时间不同的公司,我想使用他们实际开放日的平均开放时间长度。
我是R的新手,并且无法为这个问题做出很多努力。感谢所提供的任何帮助。谢谢!
答案 0 :(得分:1)
data.frame(company=paste0("company",seq_along(x)),x,stringsAsFactors = F)%>%
unnest_tokens(word, x, token = strsplit, split= ";",)%>%
separate(word,c("day","open_time","close_time"),"(?<=[a-z]):|-")%>%
mutate(duration=strptime(close_time,"%I:%M %p")-strptime(open_time,"%I:%M %p"),
durinterval=duration<4,
closeearlierthan2=as.numeric(format(strptime(close_time,"%I:%M %p"),"%H"))<14)
company day open_time close_time duration durinterval closeearlierthan2
1 company1 wed 9:00 am 1:00 pm 4.0 hours FALSE TRUE
2 company2 sat 9:00 am 1:00 pm 4.0 hours FALSE TRUE
3 company3 <NA> <NA> <NA> NA hours NA NA
4 company4 wed 3:00 pm 6:00 pm 3.0 hours TRUE FALSE
5 company4 sat 8:00 am 1:00 pm 5.0 hours FALSE TRUE
6 company5 tue 8:00 am 5:00 pm 9.0 hours FALSE FALSE
7 company5 sat 8:00 am 8:00 pm 12.0 hours FALSE FALSE
8 company6 tue 3:30 pm 6:30 pm 3.0 hours TRUE FALSE
9 company7 tue 10:00 am 7:00 pm 9.0 hours FALSE FALSE
10 company8 fri 8:00 am 11:00 am 3.0 hours TRUE TRUE
11 company9 sat 9:00 am 1:00 pm 4.0 hours FALSE TRUE
12 company10 sat 9:00 am 1:00 pm 4.0 hours FALSE TRUE
13 company11 wed 2:30 pm 6:30 pm 4.0 hours FALSE FALSE
14 company12 tue 8:00 am 6:00 pm 10.0 hours FALSE FALSE
15 company13 wed 3:00 pm 7:00 pm 4.0 hours FALSE FALSE
16 company14 thu 3:00 pm 6:30 pm 3.5 hours TRUE FALSE
17 company15 thu 3:00 pm 7:00 pm 4.0 hours FALSE FALSE
18 company16 sat 8:00 am 11:00 am 3.0 hours TRUE TRUE
19 company17 sat 8:00 am 12:00 pm 4.0 hours FALSE TRUE
20 company18 sat 8:30 am 1:00 pm 4.5 hours FALSE TRUE
21 company19 wed 11:00 am 6:00 pm 7.0 hours FALSE FALSE
22 company19 thu 11:00 am 6:00 pm 7.0 hours FALSE FALSE
23 company19 fri 11:00 am 6:00 pm 7.0 hours FALSE FALSE
24 company19 sat 11:00 am 6:00 pm 7.0 hours FALSE FALSE
25 company20 fri 7:30 am 12:00 pm 4.5 hours FALSE TRUE
26 company21 tue 2:00 pm 6:00 pm 4.0 hours FALSE FALSE
27 company22 sat 8:30 am 2:00 pm 5.5 hours FALSE FALSE
28 company23 sun 9:00 am 1:00 pm 4.0 hours FALSE TRUE
29 company24 wed 1:00 pm 5:00 pm 4.0 hours FALSE FALSE
30 company25 tue 2:00 pm 6:00 pm 4.0 hours FALSE FALSE
31 company26 thu 3:30 pm 6:30 pm 3.0 hours TRUE FALSE
32 company27 thu 11:00 am 3:00 pm 4.0 hours FALSE FALSE
33 company27 fri 11:00 am 3:00 pm 4.0 hours FALSE FALSE
34 company27 sat 8:00 am 3:00 pm 7.0 hours FALSE FALSE
35 company28 sat 8:00 am 2:00 pm 6.0 hours FALSE FALSE
36 company29 sun 9:00 am 1:00 pm 4.0 hours FALSE TRUE
37 company30 sun 10:00 am 2:00 pm 4.0 hours FALSE FALSE
38 company31 sat 7:00 am 12:00 pm 5.0 hours FALSE TRUE
39 company32 thu 2:00 pm 6:00 pm 4.0 hours FALSE FALSE
40 company33 thu 4:00 pm 6:30 pm 2.5 hours TRUE FALSE
41 company34 thu 4:00 pm 9:00 pm 5.0 hours FALSE FALSE
42 company35 sat 8:30 am 1:30 pm 5.0 hours FALSE TRUE
43 company36 tue 3:00 pm 7:00 pm 4.0 hours FALSE FALSE
44 company37 tue 1:00 pm 5:00 pm 4.0 hours FALSE FALSE
45 company38 <NA> <NA> <NA> NA hours NA NA
46 company39 <NA> <NA> <NA> NA hours NA NA
47 company40 wed 1:00 pm 5:00 pm 4.0 hours FALSE FALSE
48 company41 wed 8:00 am 5:00 pm 9.0 hours FALSE FALSE
49 company41 sat 8:00 am 5:00 pm 9.0 hours FALSE FALSE