0
末考慮形式馬克開始和團體
seller buyer month
1: 50536344 61961225 1993-01-01
2: 50536344 61961225 1993-02-01
3: 50536344 61961225 1993-04-01
4: 50536344 61961225 1993-05-01
5: 50536344 61961225 1993-06-01
的data.table
結構,在那裏我有(buyer, seller)
雙隨着時間的推移。我想標記每一對的開始和結束。例如,我們看到從一月到二月有一對,三月沒有,一到四月到六月。因此,下面的將是所期望的輸出:
seller buyer month start end
1: 50536344 61961225 1993-01-01 True False
2: 50536344 61961225 1993-02-01 False True
3: 50536344 61961225 1993-04-01 True False
4: 50536344 61961225 1993-05-01 False False
5: 50536344 61961225 1993-06-01 False True
爲什麼你需要假設'Date'類?只需使用'data.table'中的'IDateTime',即:'dt [,start:= c(TRUE,diff(as.IDate(month))> 31),by = list(seller,buyer)]; dt [,end:= c(diff(as.IDate(month))> 31,TRUE),by = list(seller,buyer)]' –
@David Arenburg:當然,'IDateTime'也可以,日期類(使用「diff」方法)而不是「字符」或「因素」。 – shadow
另外,爲什麼不能一氣呵成呢?結束= c(差異(as.IDate(月))> 31,TRUE)),by(由於.IDate(月))> =清單(賣方,買方)]'。 (在':='後面加上反引號)。除此之外(+1):) –