次の列 (簡略化) で構成されるデータ フレームがあります: 日付、ID、価格:
Date ID Price
1/2/2013 05947U4Q8 25
1/2/2013 05947UT40 9.40264
1/2/2013 07387BAW3 8.75
1/2/2013 07387BBJ1 4.4861
1/2/2013 07387BEQ2 5
1/2/2013 12513EAY0 6
1/2/2013 20047PAS6 33
1/3/2013 05947UT40 9.40414
1/3/2013 07387BAW3 8.75
1/3/2013 07387BBJ1 4.4742
1/3/2013 07387BEQ2 5
1/3/2013 12513EAY0 6
1/3/2013 20047PAS6 33
したがって、すべての Date には複数の ID があり、それぞれに 1 つの Price があります。ID は日ごとに変更される場合があります (削除されるものもあれば、追加されるものもあります)。私が計算しようとしているのは、毎日、すべての ID の価格の変化です (ID の価格が前日にわかっていた場合)。したがって、上記の例の場合、出力は次のようになります。
Date ID Price change
1/3/2013 05947UT40 0.0015
1/3/2013 07387BAW3 0
1/3/2013 07387BBJ1 -0.0119
1/3/2013 07387BEQ2 0
1/3/2013 12513EAY0 0
1/3/2013 20047PAS6 0
素朴に使用:
tapply(dataSet$Price, as.Date(dataSet$Date), diff)
動作しません。つまり、探しているものが得られません。