我可能會考慮使用「data.table」包。
我會使用的一般方法是使用order
或rank
來創建您的「類別」列。這裏很好的事情是,你並沒有真正限制比較兩個日期。
DT <- data.table(df)
DT[, category := order(date), by = id]
DT
# id date category
# 1: 101 2012-09-18 2
# 2: 101 2012-08-21 1
# 3: 102 2013-03-25 1
# 4: 102 2013-04-15 2
如果你想要的文字標籤,你可以使用factor
:
DT[, category := factor(category, labels = c("Early", "Late"))]
DT
# id date category
# 1: 101 2012-09-18 Late
# 2: 101 2012-08-21 Early
# 3: 102 2013-03-25 Early
# 4: 102 2013-04-15 Late
爲了方便,這是 「DF」,我開始:
df <- structure(list(id = c(101L, 101L, 102L, 102L),
date = structure(c(15601, 15573, 15789, 15810), class = "Date")),
.Names = c("id", "date"), row.names = c(NA, -4L), class = "data.frame")
是否有每個'id'總是兩個條目? –
是的,這個例子只有兩個 – user2900006