我有一個家庭列表,以及他們移入新郵政編碼的日期。一小部分如下:跨列的R訂單觀察
ADD0 <- as.Date(c("2008-07-01", "1998-07-01", "2001-11-01", "1997-08-01"), format="%Y-%m-%d")
ADD1 <- as.Date(c(NA, "2001-09-01", "2002-03-01", NA), format="%Y-%m-%d")
ADD2 <- as.Date(c(NA, "1992-09-01", "2001-09-01", "2007-12-01"), format="%Y-%m-%d")
ZIP0 <- as.character(c(30126, 30345, 30068, 30253))
ZIP1 <- as.character(c(NA, 30263, 31064, NA))
ZIP2 <- as.character(c(NA, 30345, 30067,30062))
DF <- data.frame(ADD0, ZIP0, ADD1, ZIP1, ADD2, ZIP2)
> DF
ADD0 ZIP0 ADD1 ZIP1 ADD2 ZIP2
1 2008-07-01 30126 <NA> <NA> <NA> <NA>
2 1998-07-01 30345 2001-09-01 30263 1992-09-01 30345
3 2001-11-01 30068 2002-03-01 31064 2001-09-01 30067
4 1997-08-01 30253 <NA> <NA> 2007-12-01 30062
所以房子2在98年7月,9月'01和9月'92搬家。正如你所看到的,我的問題是日期不一定按照正確的順序,我需要它們。我能看到這樣做的唯一方法是循環訪問數據集並編寫我自己的排序算法,這是我幾乎沒有經驗的。效率也很重要,因爲我有450k的觀察。
以前有人做過這種事嗎?有小費嗎?有沒有我找不到的乾淨解決方案?
**預處理**您的數據一次將其排序到正確的順序有什麼問題?無論如何,你至少必須迭代一次,而排序也是如此便宜。你不需要發明自己的排序算法! –
我不確定你的意思,我在問我如何去預處理我的數據。我不認爲它是一個簡單的排序任務,因爲它通常涉及排序矢量。我相信我接受的答案正是我希望得到的解決方案;你有其他選擇嗎? – gregmacfarlane