table
位于 base
包(package)。 说明
table
使用交叉分类因子来构建每个因子级别组合的计数列联表。
用法
table(...,
exclude = if (useNA == "no") c(NA, NaN),
useNA = c("no", "ifany", "always"),
dnn = list.names(...), deparse.level = 1)
as.table(x, ...)
is.table(x)
## S3 method for class 'table'
as.data.frame(x, row.names = NULL, ...,
responseName = "Freq", stringsAsFactors = TRUE,
sep = "", base = list(LETTERS))
参数
... |
一个或多个可以被解释为因子(包括数字或字符串)的对象,或者其组件可以被解释为因子的 |
exclude |
要删除 |
useNA |
是否在表中包含 |
dnn |
为结果中的维度指定的名称(dimnames 名称)。 |
deparse.level |
控制默认 |
x |
任意的R对象,或从类继承的对象 |
row.names |
给出 DataFrame 的行名称的字符向量。 |
responseName |
用于表条目列的名称,通常是计数。 |
stringsAsFactors |
逻辑:分类因子应该作为因子(默认)还是字符向量返回? |
sep , base |
传递给 |
细节
如果未提供参数 dnn
,则调用内部函数 list.names
来计算“dimname 名称”,如下所示: 如果 ...
是一个带有自己的 names()
的 list
,则使用这些 names
。否则,如果 ...
中的参数已命名,则使用这些名称。对于其余参数,deparse.level = 0
给出一个空名称,deparse.level = 1
使用提供的参数(如果它是符号),deparse.level = 2
将解析该参数。
仅当指定 exclude
(即非默认情况下)且非空时,table
才可能会降低因子参数的级别。
useNA
控制表是否包含 NA
值的计数:允许的值对应于从不 ( "no"
),仅当计数为正数 ( "ifany"
) 甚至零计数 ( "always"
) 时。请注意两种不同类型的 NA
的 “pathological” 情况,它们的处理方式有所不同,具体取决于 useNA
和 exclude
,请参阅下面“示例:”中的 d.patho
。
exclude
和useNA
都在“all or none” 基础上运行。如果要单独控制多路表的维度,请使用 factor
或 addNA
修改每个参数。
非因子论证a
被胁迫通过factor(a,
exclude=exclude)
。自从R3.4.0,小心不是计算排除的值(它们包含在NA
计数,之前)。
类 "table"
的 summary
方法(用于由 table
或 xtabs
创建的对象)提供基本信息并执行因子独立性的卡方检验(请注意,函数 chisq.test
目前仅处理二维表)。
值
table()
返回列联表、"table"
类的对象、整数值数组。请注意,与 S 不同,结果始终是 array
,如果给出一个因子,则结果是一维数组。
as.table
和 is.table
分别强制和测试列联表。
从类 "table"
继承的对象的 as.data.frame
方法可用于将列联表的基于数组的表示转换为包含分类因子和相应条目的 DataFrame (后者作为由 responseName
命名的组件) 。这是 xtabs
的逆。
例子
require(stats) # for rpois and xtabs
## Simple frequency distribution
table(rpois(100, 5))
## Check the design:
with(warpbreaks, table(wool, tension))
table(state.division, state.region)
# simple two-way contingency table
with(airquality, table(cut(Temp, quantile(Temp)), Month))
a <- letters[1:3]
table(a, sample(a)) # dnn is c("a", "")
table(a, sample(a), dnn = NULL) # dimnames() have no names
table(a, sample(a), deparse.level = 0) # dnn is c("", "")
table(a, sample(a), deparse.level = 2) # dnn is c("a", "sample(a)")
## xtabs() <-> as.data.frame.table() :
UCBAdmissions ## already a contingency table
DF <- as.data.frame(UCBAdmissions)
class(tab <- xtabs(Freq ~ ., DF)) # xtabs & table
## tab *is* "the same" as the original table:
all(tab == UCBAdmissions)
all.equal(dimnames(tab), dimnames(UCBAdmissions))
a <- rep(c(NA, 1/0:3), 10)
table(a) # does not report NA's
table(a, exclude = NULL) # reports NA's
b <- factor(rep(c("A","B","C"), 10))
table(b)
table(b, exclude = "B")
d <- factor(rep(c("A","B","C"), 10), levels = c("A","B","C","D","E"))
table(d, exclude = "B")
print(table(b, d), zero.print = ".")
## NA counting:
is.na(d) <- 3:4
d. <- addNA(d)
d.[1:7]
table(d.) # ", exclude = NULL" is not needed
## i.e., if you want to count the NA's of 'd', use
table(d, useNA = "ifany")
## "pathological" case:
d.patho <- addNA(c(1,NA,1:2,1:3))[-7]; is.na(d.patho) <- 3:4
d.patho
## just 3 consecutive NA's ? --- well, have *two* kinds of NAs here :
as.integer(d.patho) # 1 4 NA NA 1 2
##
## In R >= 3.4.0, table() allows to differentiate:
table(d.patho) # counts the "unusual" NA
table(d.patho, useNA = "ifany") # counts all three
table(d.patho, exclude = NULL) # (ditto)
table(d.patho, exclude = NA) # counts none
## Two-way tables with NA counts. The 3rd variant is absurd, but shows
## something that cannot be done using exclude or useNA.
with(airquality,
table(OzHi = Ozone > 80, Month, useNA = "ifany"))
with(airquality,
table(OzHi = Ozone > 80, Month, useNA = "always"))
with(airquality,
table(OzHi = Ozone > 80, addNA(Month)))
参考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
tabulate
是底层函数,允许更精细的控制。
使用ftable
打印(以及更多)多维表。 margin.table
、prop.table
、addmargins
。
xtabs
用于使用公式接口对数据帧进行交叉制表。
相关用法
- R tabulate 向量列表
- R taskCallback 添加或删除顶级任务回调
- R taskCallbackManager 创建R级任务回调管理器
- R taskCallbackNames 查询当前内部顶级任务回调名称
- R tapply 对不规则数组应用函数
- R toString 将 R 对象转换为字符串或测试字符串
- R tilde 波形符运算符
- R try 尝试允许错误恢复的表达式
- R transform 转换对象,例如 DataFrame
- R textConnection 文本连接
- R tracemem 对象的跟踪复制
- R traceback 获取并打印调用堆栈
- R t 矩阵转置
- R tempfile 为临时文件创建名称
- R typeof 对象的类型
- R trace 函数或方法调用的交互式跟踪和调试
- R timezones 时区
- R trimws 删除前导/尾随空格
- R file.path 构造文件路径
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
- R vector 向量 - 创建、强制等
- R lapply 对列表或向量应用函数
- R dump R 对象的文本表示
- R Sys.getenv 获取环境变量
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Cross Tabulation and Table Creation。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。