摘要框架的基础上公式
问题描述:
考虑以下几点:摘要框架的基础上公式
df = data.frame(x=1:10, y = (1:10) %% 2 == 0)
我想打电话给像
summarize(x ~ y, data = df)
,并得到一个输出像
FALSE TRUE
Mean 5 6
Count 5 5
基本上,我想要类似xtabs
但具有可定制的输出。例如。 xtabs(x ~ y, data = df, FUN = c(mean, length))
。
这样的事情是否存在?
答
您正在寻找基地R的aggregate
,但有许多选项可用。随着aggregate
,你必须做的工作一点点把事情恰到好处,但这里的基本思想是:
> aggregate(x ~ y, df, function(x) cbind(mean(x), length(x)))
y x.1 x.2
1 FALSE 5 5
2 TRUE 6 5
为了让您开始使用替代品,这里的“data.table”:
> library(data.table)
> DT <- data.table(df)
> DT[, list(Mean = mean(x), Count = length(x)), by = "y"]
y Mean Count
1: FALSE 5 5
2: TRUE 6 5
而且plyr:
> library(plyr)
> ddply(df, .(y), summarize, Mean = mean(x), Count = length(x))
y Mean Count
1 FALSE 5 5
2 TRUE 6 5
答
看看表包,它可以让你指定一个桌子的形状,样式和综合性指标全部在公式声明。如果你使用像一个公式:
group + (n=1) ~ (var1 + var2)*(mean+sd)
然后你会得到一个表,一排的group
每个级别和总排在底部,则列会的平均值和var1
和var2
标准偏差(共4列)。
还有其他选项可用于格式化列和标题,您可以使用自己创建的函数来完成摘要,可以进行计数和百分比以及许多其他操作。