R 输出为参差不齐的阿拉伯半岛

R 输出为参差不齐的阿拉伯半岛,r,R,是否有类似于表的函数以不规则数组的形式输出结果 我有一个数据框,我想将不同项目在不规则数组中的出现情况制成表格。我知道我可以使用table以数组的形式输出数据。然而,数据是稀疏的。xtab函数可以在稀疏矩阵中输出,但仅限于二维 我需要一个函数来获取如下数据帧: Purchases WeeksSinceFirstPurcahse 1 10.1 1 4.2 1 4.2 2 2.4 3 1 2

是否有类似于表的函数以不规则数组的形式输出结果

我有一个数据框,我想将不同项目在不规则数组中的出现情况制成表格。我知道我可以使用table以数组的形式输出数据。然而,数据是稀疏的。xtab函数可以在稀疏矩阵中输出,但仅限于二维

我需要一个函数来获取如下数据帧:

Purchases WeeksSinceFirstPurcahse 1 10.1 1 4.2 1 4.2 2 2.4 3 1 2 2.4 Purchases DaysSinceFirstPurcahse Count 1 10.1 1 1 4.2 2 2 2.5 2 3 1 1 采购周自首次采购 1 10.1 1 4.2 1 4.2 2 2.4 3 1 2 2.4 输出计数如下:

Purchases WeeksSinceFirstPurcahse 1 10.1 1 4.2 1 4.2 2 2.4 3 1 2 2.4 Purchases DaysSinceFirstPurcahse Count 1 10.1 1 1 4.2 2 2 2.5 2 3 1 1 采购日首次采购数量 1 10.1 1 1 4.2 2 2 2.5 2 3 1 1
您可以使用plyr软件包,特别是计数功能。 使用您的数据,我们可以执行以下操作:

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

事实上,我发现只需使用count函数就可以做到这一点,它比ddply快。计数(toydat,((购买,周自首次购买))。你是对的。我从来没有这样使用过这个函数,谢谢(+1)这是您尝试使用函数
table()
时不喜欢的吗<代码>as.data.frame(表(x$Purchases,x$weekssincefirstpurchase))