1

不規則な配列で結果を出力する table のような関数はありますか?

データフレームがあり、不規則な配列でさまざまなアイテムの出現を集計したいと考えています。table を使用してデータを配列に出力できることを知っています。ただし、データはまばらです。xtab 関数は疎行列で出力できますが、2 次元に制限されます。

次のようなデータフレームを取得する関数が必要です。

最初の購入からの週数
1 10.1
1 4.2
1 4.2
2 2.4
3 1
2 2.4

出力は次のようにカウントされます。

Purchases DaysSinceFirstPurcahse カウント
1 10.1 1
1 4.2 2
2 2.5 2
3 1 1
4

1 に答える 1

2

plyrパッケージと特殊なcount関数を使用できます。あなたのデータを使用して、次のようなことができます。

require(plyr) 
toydat
  Purchases WeeksSinceFirstPurcahse
1         1                    10.1
2         1                     4.2
3         1                     4.2
4         2                     2.4
5         3                     1.0
6         2                     2.4

str(toydat)
'data.frame':   6 obs. of  2 variables:
 $ Purchases              : int  1 1 1 2 3 2
 $ WeeksSinceFirstPurcahse: num  10.1 4.2 4.2 2.4 1 2.4

ddply(toydat, .(Purchases), function(x) count(x, "WeeksSinceFirstPurcahse"))
  Purchases WeeksSinceFirstPurcahse freq
1         1                     4.2    2
2         1                    10.1    1
3         2                     2.4    2
4         3                     1.0    1

編集してカウント関数の例を追加します。

count(toydat,.(Purchases,WeeksSinceFirstPurchase))
  Purchases WeeksSinceFirstPurchase freq
1         1                     4.2    2
2         1                    10.1    1
3         2                     2.4    2
4         3                     1.0    1
于 2012-07-20T19:51:15.740 に答える