aggregate
位于 stats
包(package)。 说明
将数据拆分为子集,计算每个子集的汇总统计数据,并以方便的形式返回结果。
用法
aggregate(x, ...)
## Default S3 method:
aggregate(x, ...)
## S3 method for class 'data.frame'
aggregate(x, by, FUN, ..., simplify = TRUE, drop = TRUE)
## S3 method for class 'formula'
aggregate(x, data, FUN, ...,
subset, na.action = na.omit)
## S3 method for class 'ts'
aggregate(x, nfrequency = 1, FUN = sum, ndeltat = 1,
ts.eps = getOption("ts.eps"), ...)
参数
x |
一个R目的。为了 |
by |
分组元素列表,每个元素只要数据帧 |
FUN |
计算可应用于所有数据子集的汇总统计数据的函数。 |
simplify |
一个逻辑,指示如果可能的话是否应将结果简化为向量或矩阵。 |
drop |
指示是否删除未使用的分组值组合的逻辑。非默认情况 |
data |
应从中获取公式中变量的 DataFrame (或列表)。 |
subset |
一个可选向量,指定要使用的观测子集。 |
na.action |
一个函数,指示当数据包含 |
nfrequency |
每单位时间的新观测数量;必须是 |
ndeltat |
连续观测之间采样周期的新部分;必须是 |
ts.eps |
用于确定 |
... |
传递给方法或由方法使用的更多参数。 |
细节
aggregate
是一个通用函数,具有数据帧和时间序列的方法。
如果 x
是时间序列,则默认方法 aggregate.default
使用时间序列方法,否则将 x
强制为数据帧并调用数据帧方法。
aggregate.data.frame
是 DataFrame 方法。如果x
不是数据帧,它被强制为一,其行数必须非零。然后,每个变量(列)x
被分成相同组件组合的案例(行)子集by
, 和FUN
应用于每个这样的子集,并带有进一步的参数...
传递给它。结果被重新格式化为包含变量的 DataFrame by
和x
。那些产生于by
包含用于确定子集的分组值的唯一组合,以及由x
中各个变量子集的相应摘要x
.如果simplify
为 true,如果摘要的公共长度分别为 1 或大于 1,则摘要会被简化为向量或矩阵;否则,获得根据子集的汇总结果列表。任意行中含有缺失值的行by
变量将从结果中省略。 (请注意,版本R2.11.0 之前需要FUN
是一个标量函数。)
公式方法为 aggregate.data.frame
提供了标准公式接口。如果 by
是公式,则后者调用公式方法,在这种情况下,aggregate(x, by, FUN)
与数据帧 x
的 aggregate(by, x, FUN)
相同。
aggregate.ts
是时间序列方法,并且要求FUN
是标量函数。如果 x
不是时间序列,则将其强制为时间序列。然后,x
中的变量被拆分为长度为 frequency(x) / nfrequency
的适当块,并将 FUN
应用于每个这样的块,并将 ...
中的其他(命名)参数传递给它。返回的结果是频率为 nfrequency
的时间序列,其中包含聚合值。请注意,当原始系列涵盖整个季度或年份时,这对于季度或年度结果最有意义:特别是,将每月系列汇总到从二月开始的季度不会给出传统的季度系列。
FUN
被传递给 match.fun
,因此它可以是一个函数或命名函数的符号或字符串。
值
对于时间序列方法,类 "ts"
或类 c("mts", "ts")
的时间序列。
对于 DataFrame 方法, DataFrame 的列对应于 by
中的分组变量,后跟 x
中的聚合列。如果 by
有名称,则非空时间用于标记结果中的列,未命名的分组变量被命名为 Group.i
for by[[i]]
。
警告
第一个论点"formula"
方法被命名为formula
而不是x
之前R4.2.0。可移植用途不应命名该参数。
例子
## Compute the averages for the variables in 'state.x77', grouped
## according to the region (Northeast, South, North Central, West) that
## each state belongs to.
aggregate(state.x77, list(Region = state.region), mean)
## Compute the averages according to region and the occurrence of more
## than 130 days of frost.
aggregate(state.x77,
list(Region = state.region,
Cold = state.x77[,"Frost"] > 130),
mean)
## (Note that no state in 'South' is THAT cold.)
## example with character variables and NAs
testDF <- data.frame(v1 = c(1,3,5,7,8,3,5,NA,4,5,7,9),
v2 = c(11,33,55,77,88,33,55,NA,44,55,77,99) )
by1 <- c("red", "blue", 1, 2, NA, "big", 1, 2, "red", 1, NA, 12)
by2 <- c("wet", "dry", 99, 95, NA, "damp", 95, 99, "red", 99, NA, NA)
aggregate(x = testDF, by = list(by1, by2), FUN = "mean")
# and if you want to treat NAs as a group
fby1 <- factor(by1, exclude = "")
fby2 <- factor(by2, exclude = "")
aggregate(x = testDF, by = list(fby1, fby2), FUN = "mean")
## Formulas, one ~ one, one ~ many, many ~ one, and many ~ many:
aggregate(weight ~ feed, data = chickwts, mean)
aggregate(breaks ~ wool + tension, data = warpbreaks, mean)
aggregate(cbind(Ozone, Temp) ~ Month, data = airquality, mean)
aggregate(cbind(ncases, ncontrols) ~ alcgp + tobgp, data = esoph, sum)
## Dot notation:
aggregate(. ~ Species, data = iris, mean)
aggregate(len ~ ., data = ToothGrowth, mean)
## Often followed by xtabs():
ag <- aggregate(len ~ ., data = ToothGrowth, mean)
xtabs(len ~ ., data = ag)
## Formula interface via 'by' (for pipe operations)
ToothGrowth |> aggregate(len ~ ., FUN = mean)
## Compute the average annual approval ratings for American presidents.
aggregate(presidents, nfrequency = 1, FUN = mean)
## Give the summer less weight.
aggregate(presidents, nfrequency = 1,
FUN = weighted.mean, w = c(1, 1, 0.5, 1))
作者
Kurt Hornik, with contributions by Arni Magnusson.
参考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
相关用法
- R alias 查找模型中的别名(依赖项)
- R anova.glm 广义线性模型拟合的偏差分析
- R anova.mlm 多元线性模型之间的比较
- R addmargins 在多维表或数组上设置任意边距
- R anova 方差分析表
- R asOneSidedFormula 转换为单边公式
- R as.hclust 将对象转换为 hclust 类
- R ar.ols 通过 OLS 将自回归模型拟合到时间序列
- R arima.sim 从 ARIMA 模型进行模拟
- R ar 将自回归模型拟合到时间序列
- R arima 时间序列的 ARIMA 建模
- R ansari.test 安萨里-布拉德利检验
- R approxfun 插值函数
- R add1 在模型中添加或删除所有可能的单项
- R acf 自协方差和互协方差以及相关函数估计
- R aov 拟合方差分析模型
- R ave 因子水平组合的组平均值
- R arima0 时间序列的 ARIMA 建模 – 初步版本
- R acf2AR 计算精确拟合 ACF 的 AR 过程
- R anova.lm 线性模型拟合的方差分析
- R stlmethods STL 对象的方法
- R medpolish 矩阵的中值波兰(稳健双向分解)
- R naprint 调整缺失值
- R summary.nls 总结非线性最小二乘模型拟合
- R summary.manova 多元方差分析的汇总方法
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Compute Summary Statistics of Data Subsets。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。