我有一個數據幀,如下ř更換NA與另一列值的組內的下一個值值
tmpdf <- data.frame(spaceNum=c(1,1,1,2,2,2,2), time.IN=c("2015-09-04 16:30", "2015-09-04 19:50", "2015-09-04 21:00", "2015-09-05 12:00", "2015 09-05 13:00", "2015 09-05 16:00", "2015 09-05 17:00"), time.OUT= c("2015-09-04 18:00", "NA", "NA","NA", "2015-09-05 13:21", "2015 09-05 16:48", "NA"))
> tmpdf
spaceNum time.IN time.OUT
1 1 2015-09-04 16:30 2015-09-04 18:00
2 1 2015-09-04 19:50 NA
3 1 2015-09-04 21:00 NA
4 2 2015-09-05 12:00 NA
5 2 2015 09-05 13:00 2015-09-05 13:21
6 2 2015 09-05 16:00 2015 09-05 16:48
7 2 2015 09-05 17:00 NA
>
我想的time.OUT
NA值替換到的time.IN
下一行值不是NULL並在相同的spaceNum
組內。即,以下是我期待的結果。
spaceNum time.IN time.OUT
1 1 2015-09-04 16:30 2015-09-04 18:00
2 1 2015-09-04 19:50 2015-09-04 21:00
3 1 2015-09-04 21:00 NA
4 2 2015-09-05 12:00 2015-09-05 13:00
5 2 2015 09-05 13:00 2015-09-05 13:21
6 2 2015 09-05 16:00 2015 09-05 16:48
7 2 2015 09-05 17:00 NA
這似乎dplyr或data.table可以做到這一點,我不得不尋找以前的問題,但是沒有找到這個合適的路要走。
這可能是專家R用戶的簡單問題,但對我來說,它已經讓我幾個小時了,並沒有找到好的解決方案。請幫幫我!!謝謝。
您沒有帶提供了一個例子,當'time.IN'爲NULL,它應該如何處理 –
是你的真實也類的數據列'factor'在您的示例數據? –
@David,爲了簡化問題,我想只是將time.OUT保留爲NULL,如果time.IN的下一行值爲NULL。 –