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