我的數據如下:多個變量添加到data.table
gvkey datadate fyear cusip curcd at ceq csho dltt dvc nopi oibdp prstkc
1: 1001 12/31/1981 1981 000165100 USD NA NA NA NA NA NA NA NA
2: 1001 12/31/1982 1982 000165100 USD NA NA NA NA NA NA NA NA
3: 1001 12/31/1983 1983 000165100 USD 14.080 7.823 3.568 4.344 0 0.640 2.650 0.000
4: 1001 12/31/1984 1984 000165100 USD 16.267 8.962 3.568 4.181 0 0.575 3.208 0.000
5: 1001 12/31/1985 1985 000165100 USD 39.495 13.014 3.988 11.908 0 0.623 7.247 0.009
6: 1003 12/31/1981 1981 000354100 USD NA NA NA NA NA NA NA NA
pstkrv prcc_c year REP
1: NA NA 1981 NA
2: NA NA 1982 NA
3: 0 7.250 1983 NA
4: 0 3.750 1984 0.0000000000
5: 0 10.125 1985 0.0002278769
6: NA NA 1981 NA
我想補充一點,是基於現有的幾個變量,而我的代碼如下:
Compustat.1<-Compustat.1[, `:=`(DIV= dvc/at,
REPR= REP/(REP+DIV),
PCASH= oibdp/at,
TCASH= nopi/at,
CASHVOL= data.table::shift(rollapply(PCASH,5,FUN=sd,fill=NA,align="right"),1,fill=NA),
SIZE= at,
LEV= dltt/at,
MB= prcc_c*csho),
by=cusip]
我保持收到錯誤消息
Error in `[.data.table`(Compustat.1, , `:=`(DIV = dvc/at, REPR = REP/(REP + :
object 'DIV' not found
由於我已經在第一步驟中定義的變量DIV,我無法弄清楚WHA問題是。
錯誤應該來自'REPR = REP /(REP + DIV )'。 'DIV'在運行整個賦值語句之前在'Compustat.1'中定義,這就是爲什麼沒有找到它。 – kitman0804
我該如何解決這個問題? – Bobo
你可以對'DIV = DIV < - dvc/at'做類似的處理,並且對於其他任何可以在以後重用的cols,比如PCASH,我認爲是類似的。對於你正在嘗試的功能請求已經在這裏:https://github.com/Rdatatable/data.table/issues/659 – Frank