1
我試圖使用滯後和數據表符號來延遲變量,以便它是最快的。 這是我試圖做到這一點,在R中的data.table中滯後,這是時間序列面板數據
head(DT)
setkey(DT,code,year)
輸出是
code year pt_N_1y ws_country close is_msci 1: 130104 2003 0 ISRAEL 0 0 2: 130104 2004 0 ISRAEL 0 0 3: 130104 2005 0 ISRAEL 0 0 4: 130104 2006 0 ISRAEL 0 0 5: 130104 2007 0 ISRAEL 0 0 6: 130104 2008 0 ISRAEL 0 0
DT[,L1_is_msci:=.SD[lag(is_msci,1)],by=code]
這給50個警告,並給所有NA
的。 是不是.SD
應該通過「代碼」對數據進行子集化並應用功能lag(is_msci, 1)
。 我理想上喜歡1行函數來做滯後操作,並且希望使用base
函數和數據表符號,因爲它是處理大數據集時最優化的,而不需要安裝許多軟件包。可能嗎?
我想達到什麼是
code year pt_N_1y ws_country close is_msci L1_is_msci 1: 130104 2003 0 ISRAEL 0 0 NA 2: 130104 2004 0 ISRAEL 0 0 0 3: 130104 2005 0 ISRAEL 0 0 0 4: 130104 2006 0 ISRAEL 0 0 0 5: 130104 2007 0 ISRAEL 0 0 0 6: 130104 2008 0 ISRAEL 0 0 0
你想'.SD [,滯後(is_msci,1)] '? –
不,這不會延遲這個系列,我希望NA在先前沒有觀察時出現在第一個滯後期。這由團體完成。 – Rads
'DT [,L1_is_msci:= lag(is_msci,1),by = code]'? – eddi