我有一个时间相关事件的数据框.
这是一个例子:
Name Event Order Sequence start_event end_event duration Group
JOHN 1 A 0 19 19 ID1
JOHN 2 A 60 112 52 ID1
JOHN 3 A 392 429 37 ID1
JOHN 4 B 282 329 47 ID1
JOHN 5 C 147 226 79 ID1
JOHN 6 C 566 611 45 ID1
ADAM 1 A 19 75 56 ID2
ADAM 2 A 384 407 23 ID2
ADAM 3 B 0 79 79 ID2
ADAM 4 B 505 586 81 ID2 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在时间范围内按组计算滚动计数/出现次数总和。
我有一个包含一些示例数据的数据框,如下所示:
dates = as.Date(c("2011-10-09",
"2011-10-15",
"2011-10-16",
"2011-10-18",
"2011-10-21",
"2011-10-22",
"2011-10-24"))
group1=c("A",
"C",
"A",
"A",
"L",
"F",
"A")
group2=c("D",
"A",
"B",
"H",
"A",
"A",
"E")
df1 <- data.frame(dates, group1, group2)
Run Code Online (Sandbox Code Playgroud)
我为每个唯一的“组”迭代单个数据框,例如,这就是“A”组的外观(它们出现在每一行中,无论是在 group1 还是 group2 中)。
我想计算“A”(然后是每个组)时间范围内事件发生的次数 - 事件的“日期”(即当前行日期)和前 4 天。我想向前滚动,例如,第 1 行的计数为 1,第 2 行的计数也为 1(除了当前日期之外,过去 4 天内没有任何事件),第 3 行的计数为 2,行4 将有 3 等。
对于每一行,我想以一列结束,基本上说,在这个事件日期,在当前日期(如日期列中所示)和过去 4 天内发生了 X 个事件.
这是以下内容:通过两列值的范围查找数据框中的匹配间隔
我有一个与时间相关的事件的数据框。
使用与之前相同的样本数据:
Name Event Order Sequence start_event end_event duration Group
JOHN 1 A 0 19 19 ID1
JOHN 2 A 60 112 52 ID1
JOHN 3 A 392 429 37 ID1
JOHN 4 B 282 329 47 ID1
JOHN 5 C 147 226 79 ID1
JOHN 6 C 566 611 45 ID1
ADAM 1 A 0 79 56 ID2
ADAM 2 A 384 407 23 ID2
ADAM 3 B 0 79 79 ID2
ADAM 4 B 505 586 …Run Code Online (Sandbox Code Playgroud) 我已经清理了一个更大的数据框到一个简单的表,看起来像这样(注意这是几百行的小样本):
Name<-c("Bob","Bob","Bob","Bob","Bob","Anne","Anne","Anne","Anne","Anne","Anne","Joe","Joe")
start_event <-c(0,266,352,354,553,0,36,192,206,458,997,1102,1198)
end_event <-c(27.5,296,354,402,561,27.5,71,203,217,515,1033,1109,1215)
duration <-c(27.5,30,2,48,8,27.5,35,11,11,57,36,7,17)
run<-c(1,2,3,4,5,1,2,3,4,5,6,1,2)
df<-data.frame(Name,run,start_event,end_event,duration)
Run Code Online (Sandbox Code Playgroud)
我的目标是创建具有对名称的曲线图的y轴,在总的事件持续时间的x轴(在分钟。将是start_event和最大将是最后end_event)。
对于每个人,一个条形代表他们活动的持续时间,从开始到结束。在它们不活跃的时候,会有没有条形的间隙。
我尝试使用 geom_rect、geom_bar 和 geom_line 尝试将另一个示例(下面的链接)中的一些代码混合在一起,但我遇到了离散/连续值的问题。
为了帮助直观地构建这个参考,为这个 Q 提供的这个答案产生了我想要实现的类似结果:https : //stackoverflow.com/a/17130467
不需要躲避条形/矩形,最好堆叠在一条水平线上。
预先感谢您的任何指导/帮助!