1

是否有类似 table 的函数将结果输出到参差不齐的数组中?

我有一个数据框,我想将不同项目在参差不齐的数组中的出现率制成表格。我知道我可以使用 table 来输出数组中的数据。但是数据稀疏。xtab 函数可以输出稀疏矩阵,但仅限于二维。

我想要一个函数来获取这样的数据框:

自首次购买以来的购买周数
1 10.1
1 4.2
1 4.2
2 2.4
3 1
2 2.4

输出计数如下:

购买天数SinceFirstPurcahse Count
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 回答