addmargins
位于 stats
包(package)。 说明
对于给定的表,可以指定将哪个分类因子扩展一个或多个级别以保持要计算的边距。例如,可以在第一维度上形成总和和均值,在第二维度上形成中值。生成的表将为第一个维度提供两个额外级别,为第二个维度提供一个额外级别。默认值是对表中所有边距求和。其他可能性可能会给出取决于计算边距的顺序的结果。这在函数的打印输出中进行了标记。
用法
addmargins(A, margin = seq_along(dim(A)), FUN = sum, quiet = FALSE)
参数
A |
表或数组。该函数使用 |
margin |
用于生成边距的维度向量。边距按照 |
FUN |
|
quiet |
逻辑,它抑制告诉边距计算顺序的消息。 |
细节
如果用于生成边距的函数不可交换,则结果取决于计算边距的顺序。边距注释是通过命名 FUN
列表来完成的。
值
table
或 array
与 A
具有相同的维度数,但具有 margin
中提到的额外维度级别。添加到每个维度的级别数是 FUN
中条目的长度。打印一条包含边距计算顺序的消息。
例子
Aye <- sample(c("Yes", "Si", "Oui"), 177, replace = TRUE)
Bee <- sample(c("Hum", "Buzz"), 177, replace = TRUE)
Sea <- sample(c("White", "Black", "Red", "Dead"), 177, replace = TRUE)
(A <- table(Aye, Bee, Sea))
(aA <- addmargins(A))
ftable(A)
ftable(aA)
# Non-commutative functions - note differences between resulting tables:
ftable( addmargins(A, c(3, 1),
FUN = list(list(Min = min, Max = max),
Sum = sum)))
ftable( addmargins(A, c(1, 3),
FUN = list(Sum = sum,
list(Min = min, Max = max))))
# Weird function needed to return the N when computing percentages
sqsm <- function(x) sum(x)^2/100
B <- table(Sea, Bee)
round(sweep(addmargins(B, 1, list(list(All = sum, N = sqsm))), 2,
apply(B, 2, sum)/100, `/`), 1)
round(sweep(addmargins(B, 2, list(list(All = sum, N = sqsm))), 1,
apply(B, 1, sum)/100, `/`), 1)
# A total over Bee requires formation of the Bee-margin first:
mB <- addmargins(B, 2, FUN = list(list(Total = sum)))
round(ftable(sweep(addmargins(mB, 1, list(list(All = sum, N = sqsm))), 2,
apply(mB, 2, sum)/100, `/`)), 1)
## Zero.Printing table+margins:
set.seed(1)
x <- sample( 1:7, 20, replace = TRUE)
y <- sample( 1:7, 20, replace = TRUE)
tx <- addmargins( table(x, y) )
print(tx, zero.print = ".")
作者
Bendix Carstensen, Steno Diabetes Center & Department of Biostatistics, University of Copenhagen, https://BendixCarstensen.com, autumn 2003. Margin naming enhanced by Duncan Murdoch.
也可以看看
相关用法
- R add1 在模型中添加或删除所有可能的单项
- R aggregate 计算数据子集的汇总统计
- R alias 查找模型中的别名(依赖项)
- R anova.glm 广义线性模型拟合的偏差分析
- R anova.mlm 多元线性模型之间的比较
- 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 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大神的英文原创作品 Puts Arbitrary Margins on Multidimensional Tables or Arrays。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。