xtabs(formula = ~., data = parent.frame(), subset, sparse = FALSE, na.action, exclude = c(NA, NaN), drop.unused.levels = FALSE)
示例:
【margin.table】按margins定义的边际列表计算表中条目的和margin.table(x, margin = NULL)
> margin.table(mytable,1) ##1:表示按行求和
a
0.333333333333333 0.5 1 Inf
10 10 10 10
> a <- rep(c(NA, 1/0:3), 10)
> b<-rep(1:5,10)
> mytable<-xtabs(~a+b)
> margin.table(mytable,2) ##2:按列求和
b
2 3 4 5
10 10 10 10
【prop.table】按margins定义的边际列表将表中条目表示为分数形式
prop.table(x, margin = NULL)
> a <- rep(c(NA, 1/0:3), 10)
> b<-rep(1:5,10)
> mytable<-xtabs(~a+b)
> prop.table(mytable) ##计算各元素占整体的比例
> prop.table(mytable,1) ## 1:表示行中各元素值/各行中数据来计算;
>library(vcd)
>attach(Arthritis)
>mytable<-table(Improved)
>prop.table(mytable)*100
>mytable1<-xtabs(~Treatment+Improved)
>mytable1
> prop.table(mytable1,1) ## 1:表示行中各元素值/各行中数据来计算;
> prop.table(mytable1,2)## 2:表示列中各元素值/各列中数据来计算;
【addmargins】为表格添加边际和
addmargins(A, margin = seq_along(dim(A)), FUN = sum, quiet = FALSE)
> a <- rep(c(NA, 1/0:3), 10)
> b<-rep(1:5,10)
> mytable<-xtabs(~a+b)
>addmargins(prop.table(mytable)) ## 在行列维度均增加求和项;
library(vcd)
attach(Arthritis)
mytable<-table(Improved)
prop.table(mytable)*100
mytable1<-xtabs(~Treatment+Improved)
addmargins(prop.table(mytable1,2),1) ##margin取值1,行增加求和项,按列值求和;
> addmargins(prop.table(mytable1,2),2) ##margin取值2,列增加求和项,按行值求和;
【CrossTable】
CrossTable(x, y, digits=3, max.width = 5, expected=FALSE, prop.r=TRUE, prop.c=TRUE, prop.t=TRUE, prop.chisq=TRUE, chisq = FALSE, fisher=FALSE, mcnemar=FALSE, resid=FALSE, sresid=FALSE, asresid=FALSE, missing.include=FALSE, format=c("SAS","SPSS"), dnn = NULL, ...)
参数说明:
x:向量或矩阵。如y被指定,则x比为向量;
y:矩阵或数据框中的向量;
digits:保留小数点后的位数,默认是3位;
max.width:默认值5.在1×N表的情况下,默认值将是水平打印输出。如果列的数量超过最大宽度,则表将被包装为每个最大宽度列的连续增量。如果需要单列垂直表,将最大宽度设置为1。
expected:默认取值false。如取值true,增加输出Expected N,及皮尔逊--卡方检验输出;
> CrossTable(Arthritis$Treatment,Arthritis$Improved,expected = TRUE)
prop.r:默认取值true,输出行比例(N / Row Total)
prop.c:默认取值true,输出列比例(N / Col Total);
prop.t:默认取值true,输出表格总体比例(N / Table Total);
pro.chisq:默认取值true,输出每个各因子的卡方分布(Chi-square contribution );
chisq:默认取值false,如取值true,则输出卡方检验结果;
fisher:默认取值false,如取值true,则输出fisher精确检验结果;
mcnemar:如取值true,则输出mcnemar test;
resid:如取值true,则输出包含pearson残差;
sresid:如取值true,则输出包含标准残差;
missing.include:如取值true,则输出不用的因子水平;
format:取值SAS、SPSS,输出的格式;
dnn:输出结果的维度名称;
> CrossTable(Arthritis$Treatment,Arthritis$Improved,expected = TRUE,+ dnn=c("Treatment","Improved"))
【ftable】创建三维列联表
ftable(x, ...)## Default S3 method:ftable(..., exclude = c(NA, NaN), row.vars = NULL,col.vars = NULL)
参数说明:
row.vars:取值整数向量,或用于给出列联表中行变量的名称的字符向量;
x <- ftable(mtcars[c("cyl", "vs", "am", "gear")]) ## 默认状态下,是以前三个因子为行变量创建三维列联表;
x
ftable(x, row.vars = c(1, 2))


雷达卡



京公网安备 11010802022788号







