log returns of multiple securities for multiple time periodの計算に従っており、セット。今、私の問題は、最新の日付として月間リターンを計算するときに始まります。月次リターンを得るために式を使用:data.frame(...、check.names = FALSE)のエラー:引数が異なる行数を意味する:6790、6771
logs=data.frame(
cbind.data.frame(
prices$Date[-1],
na.locf(diff(as.matrix(log(prices[,-1])), lag = 20))
)
)
を私は取得しています:行数の違いは、私は毎月のリターンを得るために使用される20日間の遅れから来ている
Error in data.frame(..., check.names = FALSE) : arguments imply differing number of rows: 6790, 6771
当然のことを、日付のとおり。私はまた、日付の年次リターンを計算する必要があり、私はそうするときも同じエラーが発生すると思います。私はcbind.data.frame
の代わりにmerge.data.frame
を使ってみましたが、私のコンピュータがクラッシュするだけでした。
私は私のデータセットの最初の10行と列を取っ:
Date `2GO` AAA AB ABA ABG ABS AC ACE ACR
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 28-Jun-17 23.25 1.61 14.98 0.37 28.25 42.85 841.5 1.61 1.50
2 27-Jun-17 23.90 1.61 14.98 0.37 27.95 42.90 842.5 1.61 1.53
3 23-Jun-17 24.60 1.61 14.98 0.38 27.00 42.90 840.5 1.70 1.57
4 22-Jun-17 24.40 1.61 14.98 0.37 28.05 43.20 855.0 1.67 1.57
5 21-Jun-17 24.80 1.61 15.00 0.37 28.05 43.10 841.5 1.67 1.57
6 20-Jun-17 25.10 1.61 14.68 0.37 28.85 43.45 858.0 1.70 1.58
7 19-Jun-17 24.85 1.61 14.68 0.37 29.05 43.40 860.0 1.75 1.55
8 16-Jun-17 25.70 1.61 14.68 0.38 29.60 43.45 850.0 1.77 1.52
9 15-Jun-17 26.20 1.61 14.48 0.38 29.55 43.30 867.0 1.69 1.53
10 14-Jun-17 26.85 1.61 16.00 0.37 29.50 43.35 867.5 1.69 1.52
フロリアンが遅れて3を提供し、使用されるコードを使用する:
logs=data.frame(
cbind.data.frame(
p$Date[-1],
c(rep(NA,3), na.locf(diff(as.matrix(log(p[,-1])), lag = 3)))
)
)
はまだエラーを出す:
Error in data.frame(..., check.names = FALSE) : arguments imply differing number of rows: 9, 66
エラーを修正したり、行番号を修正する方法はありますか?
こんにちは@Florian、この1つで私を助けてくれてありがとう。残念ながら、上記の公式を使用して同じエラーが発生しています.6790、6771、6790、1855547の異なる番号でのみ表示されます。最初のコードをテストしても動作しますが、 't。 – samael
小さな例を作る方法はありますか?データセットの最初の10行を取り出し、3のラグを使用しますか?あなたの質問に使用するデータを貼り付けるには、https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-exampleを参照してください。そうすれば、簡単に手助けすることができます。 – Florian
こんにちは@Florian、サンプルを投稿していないことに謝罪します。私は元の投稿に自分のデータセットの最初の10行と列を含め、あなたが提供した数式を3ラグとして使用しました。 – samael