我是R新手。我必須根據以下標準編寫一些代碼來清除潛在的重複實驗記錄。 我希望有人能給我一些幫助,如何在dplyr
做到這一點?我知道R中有一個重複的函數,並且在lubridate
包中還有一個日期函數,可以很容易地定義日期差異。使用3個條件識別重複項
的清理規則如下:
如果採集日期6個月內從最後採集日期和類型是「相同」,然後刪除與記錄後來的收集日期。
如果採集日期從最後採集日期個月內6和類型是「不同」,則保留兩個記錄。
如果採集日期6個月內,並一個記錄具有噬菌體型,另一種具有NA噬菌體型,然後用NA噬菌體型是6個月內即刪除該記錄。
我想創建一個名爲「標誌去除」新列標記應該被刪除,所以我們可以刪除這些記錄前檢查記錄。
這是一個數據集。有5個客戶有重複記錄,並且我在數據集之後包含了預期結果。
dat0<-read.table(text="
ID Collection_Date Type
9318 5/8/2014 SE_8
29210 2/9/2015 SE_19
31733 10/27/2014 SE_13a
31733 10/29/2014 SE_13a
35463 4/14/2015 SE_13
260717 1/7/2016 SE_8
267125 7/15/2014 SE_8
276105 12/11/2014 SE_13a
276105 1/25/2015 NA
276195 11/20/2015 SE_13a
280415 9/21/2014 SE_8
280957 4/28/2015 SE_22
281839 1/6/2016 SE_13a
281839 11/21/2016 NA
302594 8/30/2015 SE_13a
423090 1/2/2016 SE_13
434579 1/10/2015 SE_13a
438046 4/15/2015 SE_22
438046 5/19/2015 SE_8
438396 1/14/2016 SE_13a
453374 2/19/2014 SE_35
519832 1/4/2015 SE_8
520665 8/15/2014 SE_13
520665 10/9/2014 SE_13
",sep="",header=TRUE)
預期結果爲5個客戶重複:
31733 27-Oct-2014 SE_13a Keep
31733 29-Oct-2014 SE_13a Delete # because the record is within 6 months and type is the same
#-------------------
276105 11-Dec-2014 SE_13a Keep
276105 25-Jan-2015 NA Delete # because type is missing and record is within 6 months of the record above
#-------------------
281839 06-Jan-2016 SE_13a Keep
281839 21-Nov-2016 NA Keep # because dates are more than 6 months
#-------------------
438046 15-Apr-2015 SE_22 Keep
438046 19-May-2015 SE_8 Keep # because type is different even if date is within 6 months
#-------------------
520665 15-Aug-2014 SE_13 Keep
520665 09-Oct-2014 SE_13 Delete
你能提供一些額外的信息嗎?例如:身份證是否有可能出現兩次以上?日期是否總是按每個ID遞增排序? – DatamineR