ご覧のとおり、月の最初の日が複数回繰り返される(注)次のようなデータがあるとします。 date
変数)。月の初めの日をRで繰り返しても保持する
date exdate strike_price delta
1: 1996-01-04 1997-06-21 500000 -0.094917
2: 1996-01-04 1996-03-16 600000 0.768930
3: 1996-01-04 1996-02-17 605000 -0.286091
4: 1996-01-04 1996-12-21 600000 0.651049
5: 1996-01-04 1996-03-16 540000 -0.040929
6: 1996-01-04 1996-02-17 630000 -0.638877
7: 1996-01-05 1996-02-17 440000 0.579155
.....
51: 1996-02-04 1997-06-21 500000 -0.094917
52: 1996-02-04 1996-03-16 600000 0.768930
53: 1996-02-04 1996-02-17 605000 -0.286091
54: 1996-02-04 1996-12-21 600000 0.651049
55: 1996-02-04 1996-03-16 540000 -0.040929
56: 1996-02-04 1996-02-17 630000 -0.638877
- 私は何をしようとすると、
date
変数に基づいて、セットに1:6
からすべての観測、すなわち、観測値のALL最初の日を保つために、各月の、あります。簡単に言えば;毎月の初日が2回以上出席しており、その月の残りの日を無視して、すべてを保持したいと考えています。 - ステップ1で行った変更の後で、最初の2つが最も古いものを
expdate
に基づいて残りの観測値から選択できますか?
日付形式はYYYY-mm-dd
です。
これまでのところ、私はその日のすべてではなく、月の最初の日の1つだけを管理しています。私が使用しているコードはこれですが、希望の結果を返しません:
setDT(df)[order(date), .(delta[which.min(date)], date[which.min(date)]), by = .(year(date), month(date))]
ありがとう。
は、クラスの日のあなたの日付変数ですか? 'str(dt)'を使って、 'dt [、date:= as.Date(date)]'をチェックして、あなたの例のフォーマットで条件付きを条件付きに変換することができます。これが問題でない場合は、データセットの例(dput(head(dt、20))に記載されている問題を再現できるデータセットを作成し、その問題が繰り返されることを確認する必要があります。私が提供した答えは、サンプルデータで適切に機能します。 – lmo
すべてが 'as.Date'です。私は数百の異なる日付を持っているので、 'rank(exdate)<3'による順序は、日付の「グループ」ではなく、datesetのすべてのexdatesのランクを考慮します。 –
また、これは 'by =引数 'がなければ真です。 'dtNew [、.I [rank(exdate)<3]、by = date]'、 'rank(exdate)'は各日付のランクを別々に計算します。 – lmo