SQL を使用してデータを取得しSQL Server
、.NET で処理していR
ます。どちらかを使用して問題を解決できます。
ここに私のデータがあります:
structure(list(id = c(1, 2, 3, 1, 2), FY = c(2010, 2008, 2009, 2011, 2009), sales = c(100, 200, 300, 400, 500)), .Names = c("id", "FY", "sales"), row.names = c(NA, -5L), class = "data.frame")
私はそれをテストと呼んだ
id FY sales
1 2010 100
2 2008 200
3 2009 300
1 2011 400
2 2009 500
編集: 私が見つけたいのは、2008 年と 2009 年に購入した顧客の維持率です。2009 年と 2010 年に購入した人。2010年と2011年に購入した人。
最終結果グリッドは、顧客が翌年維持された年に 1 または null 以外の値を配置します。
私が取得しようとしている最終結果は次のようになります。
id 2008 2009 2010 2011
1 1
2 1
このタイプの表を使用して、毎年の定着率を計算できます。
現在、さまざまなCASE
ステートメントとサブクエリを記述してこのようなグリッドを作成できますが、実際のデータを 10 年以上使用しており、何年にもわたってハード コードするのは嫌です。R
おそらく、データがになったら、これを行う方が簡単ですがcast
、これをコーディングするのに苦労しています。