希望您能帮助我解决我的问题。
例如,有关于人们上车(时间1)和下车(时间2)的数据。 我想找出的是在某个时间点,例如火车上有多少人。 2018/01/01 16:00查看数据集,我可以看到当时火车上有两个人。 最后,我想得到一张表格,其中一栏显示日期和小时,另一栏显示人数。在R中可以吗?
非常感谢!
我知道我没有为您提供很多信息。真的不知道如何在这里发布具有良好格式的内容... 我不希望有详细的解决方案,只是向正确的方向指点是很好的。
答案 0 :(得分:1)
这是一个小例子,火车上有2个人,并且有2个兴趣点:
library(tidyverse)
library(lubridate)
# example dataframe (2 people on the train)
df = data.frame(start = c("2018-01-01 10:00:00", "2018-01-01 13:00:00"),
end = c("2018-01-01 15:00:00", "2018-01-01 17:00:00"), stringsAsFactors = F)
# get a set of time points of interest
times = c("2018-01-01 16:00:00", "2018-01-01 09:00:00")
data.frame(times, stringsAsFactors = F) %>% # for each time point of interest
mutate(d = list(df)) %>% # join with inital dataset
unnest() %>% # unnest data
rowwise() %>% # for each row
mutate(flag = between(ymd_hms(times), ymd_hms(start), ymd_hms(end))) %>% # add a flag value if the time point is between the start and end time
group_by(times) %>% # for each time point
summarise(NumPeople = sum(flag)) # add the flags to get number of users within the time frames
# # A tibble: 2 x 2
# times NumPeople
# <chr> <int>
# 1 2018-01-01 09:00:00 0
# 2 2018-01-01 16:00:00 1