1
我的數據集如何計算條件的持續時間(分鐘)?
我的數據集包括很多人(ID
)在本週(Day
)的各種天不同的區域(Location
)工作的開始和結束時間。我的數據集的下面是一個例子:
> head(WeekOne, 15)
Start Finish Day ID Location
1 2017-04-12 00:00:00 2017-04-12 00:02:55 D1 Daniel Office
2 2017-04-12 00:02:55 2017-04-12 00:06:18 D1 Daniel Office
3 2017-04-12 00:06:18 2017-04-12 00:08:20 D1 Daniel OnSite
4 2017-04-12 00:08:20 2017-04-12 00:08:40 D1 Daniel OnSite
5 2017-04-12 00:08:40 2017-04-12 00:10:11 D1 Daniel Travel
6 2017-04-12 00:10:11 2017-04-12 00:10:18 D1 Daniel Travel
7 2017-04-12 00:10:18 2017-04-12 00:17:52 D1 Daniel Travel
8 2017-04-12 00:17:52 2017-04-12 00:19:00 D1 Daniel Travel
9 2017-04-12 00:19:00 2017-04-12 00:19:56 D1 Daniel OnSite
10 2017-04-12 00:19:56 2017-04-12 00:28:48 D1 Daniel OnSite
11 2017-04-12 00:00:00 2017-04-12 00:03:52 D2 Daniel OnSite
12 2017-04-12 00:03:52 2017-04-12 00:04:05 D2 Daniel Office
13 2017-04-12 00:04:05 2017-04-12 00:08:32 D2 Daniel Office
14 2017-04-12 00:08:32 2017-04-12 00:16:01 D2 Daniel Travel
15 2017-04-12 00:16:01 2017-04-12 00:25:35 D2 Daniel OnSite
我想知道的總時間,以分鐘爲單位,每個ID
在一週花費在每個Location
。 Day
的最大級別是D7,每個星期我都有一個獨立的data.frame。因此,我只需要遍歷Location
和ID
。
我有什麼企圖
下面的代碼,雖然這將返回分鐘在一個陌生的格式,並沒有考慮多次訪問同一位置上一天。例如,Daniel在D1
上訪問OnSite
兩次。
WeekOne %>%
group_by(ID, Location) %>%
summarise(Duration = max(Finish) - min(Start))
我沒想到創建佔多和變化Location
新列WeekOne$Level
的。然後我可以迭代每個Level並使用上面的代碼。例如:
> head(WeekOne, 15)
Start Finish Day ID Location Level
1 2017-04-12 00:00:00 2017-04-12 00:02:55 D1 Daniel Office 1
2 2017-04-12 00:02:55 2017-04-12 00:06:18 D1 Daniel Office 1
3 2017-04-12 00:06:18 2017-04-12 00:08:20 D1 Daniel OnSite 2
4 2017-04-12 00:08:20 2017-04-12 00:08:40 D1 Daniel OnSite 2
5 2017-04-12 00:08:40 2017-04-12 00:10:11 D1 Daniel Travel 3
6 2017-04-12 00:10:11 2017-04-12 00:10:18 D1 Daniel Travel 3
7 2017-04-12 00:10:18 2017-04-12 00:17:52 D1 Daniel Travel 3
8 2017-04-12 00:17:52 2017-04-12 00:19:00 D1 Daniel Travel 3
9 2017-04-12 00:19:00 2017-04-12 00:19:56 D1 Daniel OnSite 4
10 2017-04-12 00:19:56 2017-04-12 00:28:48 D1 Daniel OnSite 4
11 2017-04-12 00:00:00 2017-04-12 00:03:52 D2 Daniel OnSite 5
12 2017-04-12 00:03:52 2017-04-12 00:04:05 D2 Daniel Office 6
13 2017-04-12 00:04:05 2017-04-12 00:08:32 D2 Daniel Office 6
14 2017-04-12 00:08:32 2017-04-12 00:16:01 D2 Daniel Travel 7
15 2017-04-12 00:16:01 2017-04-12 00:25:35 D2 Daniel OnSite 8
WeekOne %>%
group_by(ID, Level) %>%
summarise(Duration = max(Finish) - min(Start))
不過,我不確定如何,即使在添加此列,它不佔Location
,看起來繁瑣,不分鐘,一個有趣的格式返回解決這個問題。
我的問題
我怎麼能快速,輕鬆地計算出Location
每個ID
隨時間的總時長?我希望持續時間在幾分鐘內,四捨五入到最接近的分鐘。例如:3分鐘。
這是什麼'Total_Duration'的格式?例如,我給出了一個數字933.50000238419,但是如何在幾分鐘內獲得'Total_Duration'? – user2716568
看起來你在秒atm,所以只需除以60分鐘即可獲得分鐘數 –