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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。