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