次のような data.frame があります。
ID Date.A Date.B Variable
A 01/01/2012 03/24/2012 Apples
A 02/01/2012 03/24/2012 Oranges
B 01/01/2012 02/04/2012 Bananas
C 01/01/2012 04/22/2012 Apples
A 03/01/2012 03/24/2012 Grapes
B 02/01/2012 02/04/2012 Oranges
D 01/01/2012 03/15/2012 Apples
ID ごとに、Date.B の前の月の最初に対応する変数を見つける必要があります。したがって、ID A の場合、「オレンジ」を抽出する必要があります。これは、2012 年 3 月 24 日 - 1 か月 = 2012 年 2 月 24 日であり、その月の最初が 2012 年 2 月 1 日であるためです。
lubridate: format.Date(df$Date.B - months(1), format="%Y-%m-01") を使用した日付計算に問題はありません。厄介な for ループを書かずに、そのロジックを ddply またはプログラム的な方法で組み込むのに問題があります。アルゴリズムの助けや誰かが私のためにそれを解決することを求めているわけではありませんが、これに似たカスタム日付ロジックを使用する ddply の例を見てみたい.
前もって感謝します。