私は各日付のオプション情報を含むデータフレームを持っています。各日付は、行使価格の変化範囲に対応する複数の行があります:私は216日を持ってR:スプリットデータフレーム、次に実行する:各スプリットの各機能(ソート)
head(df)
Date C/P K Vol Delta ID
1 01/23/1997 0 805 0.155814 0.234181 10007288
2 01/23/1997 1 790 0.159603 -0.609276 10333499
3 01/23/1997 0 815 0.141776 0.132414 10106825
4 01/23/1997 1 700 0.257233 -0.060976 10012499
5 01/23/1997 1 680 0.279465 -0.035616 10072595
6 01/23/1997 0 730 0.197782 0.888286 10307920
を、それぞれの日付は100〜300行、各行使価格のための1つを持っています。データフレームを日付別に分割し、それぞれの日付フレームに対して、プライマリソートキーとしてC/Pを使用し、セカンダリソートキーとしてKを使用します。
plyrは使用するパッケージですか?私はsplit(df、df $ Date)を試しましたが、各分割データフレームにソート関数を適用することについてのドキュメントは見つかりません。一次および二次並べ替え
、Iは平均:
Input:
C/P K Vol Delta
0 800 0.1 0.11
1 800 0.2 0.22
1 700 0.3 0.33
0 700 0.4 0.44
1 900 0.5 0.55
1 600 0.6 0.66
0 600 0.7 0.77
0 900 0.8 0.88
Output:
C/P K Vol Delta
0 600 0.7 0.77
0 700 0.4 0.44
0 800 0.1 0.11
0 900 0.8 0.88
1 600 0.6 0.66
1 700 0.3 0.33
1 800 0.2 0.22
1 900 0.5 0.55
'lapply(split(df、df $ Date)、function(x)x [order(x [[" C/P "]]、x [[" K "]])、あなたが期待される結果を示したならば、より有益な情報になりました。ところで、データセットを分割する必要はありません。これは、 'data.table/dplyr'すなわち' setDT(df)[order( "C/P"、K)、.SD、by = Date]でより簡単に行うことができます。 '' C/P'カラム名は多少です問題がある。 – akrun
'df [order(df $ Date、df $ 'C/P')]]のようなものですか? – JeremyS
表示されている例から期待される出力を使用してください。 – akrun