私のデータは以下の通りである:は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]
私はすでに最初のステップで可変DIVを定義しているので、私はWHAを把握することができなかったエラーメッセージ
Error in `[.data.table`(Compustat.1, , `:=`(DIV = dvc/at, REPR = REP/(REP + :
object 'DIV' not found
を受信維持問題はありません。
エラーがREPR = REP /(REP + DIV 'から来るべきで、うまく動作するはずの場所で変数が作成されます。また、ためCompustat.1を割り当てする必要がないことに注意してください) '。 'DIV'は代入文全体を実行する前に' Compustat.1'で定義されています。それが見つからないのです。 – kitman0804
この問題を解決するにはどうすればよいですか? – Bobo
あなたは 'DIV = DIV < - dvc/at'や後で再利用される他のどの列に対しても同様のことができます.PCASHのように思えます。あなたがしようとしている機能リクエストはここにあります:https://github.com/Rdatatable/data.table/issues/659 – Frank