0
我有两个大型数据集,一个名为Shifts
,它包含一个班次内的个人开始和结束时间(ID
)。的数据是如何构成的一个小例子:如何在一段时间内查找时间并返回另一列值?
> head(Shifts, 15)
ID Shift Rotation Start End
1 A S1 1 2017-04-23 00:05:58 2017-04-23 00:24:40
2 A S2 2 2017-04-23 00:00:00 2017-04-23 00:10:08
3 A S2 3 2017-04-23 00:15:13 2017-04-23 00:27:32
4 A S3 4 2017-04-23 00:00:00 2017-04-23 00:20:43
5 A S3 5 2017-04-23 00:27:49 2017-04-23 00:33:28
6 A S4 6 2017-04-23 00:04:26 2017-04-23 00:31:37
7 B S1 1 2017-04-23 00:00:00 2017-04-23 00:11:56
8 B S1 2 2017-04-23 00:13:42 2017-04-23 00:29:10
9 B S2 3 2017-04-23 00:03:38 2017-04-23 00:24:28
10 B S3 4 2017-04-23 00:00:00 2017-04-23 00:27:36
11 B S3 5 2017-04-23 00:31:08 2017-04-23 00:33:28
12 B S4 6 2017-04-23 00:00:01 2017-04-23 00:14:26
13 B S4 7 2017-04-23 00:18:32 2017-04-23 00:31:37
14 C S1 1 2017-04-23 00:00:00 2017-04-23 00:29:10
15 C S2 2 2017-04-23 00:00:00 2017-04-23 00:19:28
其他数据集(Activities)
包含通过在各移位个人(ID)
完成时间戳的工作活动(Symbol
)。此数据集的一个小例子:
> head(Activity, 10)
ID Symbol Shift Time
1 B TE S1 2017-04-23 00:00:22
2 B TI S1 2017-04-23 00:00:24
3 C TE S1 2017-04-23 00:01:08
4 A TE S1 2017-04-23 00:06:08
5 B TE S1 2017-04-23 00:01:25
6 B P S1 2017-04-23 00:01:33
7 C P S1 2017-04-23 00:01:36
8 C T S1 2017-04-23 00:01:36
9 A T S1 2017-04-23 00:07:45
10 A T S1 2017-04-23 00:08:25
对于每个ID上每个班次,现在我想如果Activities$Time
来查找时间间隔Shifts$Start
和Shifts$End
然后返回相应Shift$Rotation
柱内。我的预期输出是:
> head(Activity, 10)
ID Symbol Shift Time Rotation
1 B TE S1 2017-04-23 00:00:22 1
2 B TI S1 2017-04-23 00:00:24 1
3 C TE S1 2017-04-23 00:01:08 1
4 A TE S1 2017-04-23 00:06:08 1
5 B TE S1 2017-04-23 00:01:25 1
6 B P S1 2017-04-23 00:01:33 1
7 C P S1 2017-04-23 00:01:36 1
8 C T S1 2017-04-23 00:01:36 1
9 A T S1 2017-04-23 00:07:45 1
10 A T S1 2017-04-23 00:08:25 1
由于这两个数据集是相当大的,有许多的ID,班次和循环,有没有快速的方法来查找并返回此列按照上面的?
谢谢。
谢谢,但是我收到以下错误信息:'加入,通过= C( “ID”, “移位”, “开始”, “结束”) 警告消息: 1:所有格式均无法解析。找不到格式。 2:所有格式解析失败。找不到格式。 3:所有格式解析失败。找不到格式。 4:所有格式解析失败。找不到格式。 ' – user2716568
@ user2716568什么时候是什么类的列(即'class(Shifts $ Start)')?我认为这是错误的根源。 –
时间栏的类别为:班级(班次$ Start) [1]“POSIXct”“POSIXt” >班级(班次$ End) [1]“POSIXct”“POSIXt” > class(IActivities $ Time) [1]“POSIXct”“POSIXt”' – user2716568