r语言table函数能像frame以表格的形式输出么
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了r语言table函数能像frame以表格的形式输出么相关的知识,希望对你有一定的参考价值。
参考技术A table()的输出可以看成是一个带名字的数字向量。可以用names()和as.numeric()分别得到名称和频数:> x <- sample(c("a", "b", "c"), 100, replace=TRUE)
> names(table(x))
[1] "a" "b" "c"
> as.numeric(table(x))
[1] 42 25 33
或者,可以直接把输出结果转化为数据框,as.data.frame():
> as.data.frame(table(x))
x Freq
1 a 42
2 b 25
3 c 33
作者:王冠嵩
链接:http://www.zhihu.com/question/46661384/answer/103506127
来源:知乎
著作权归作者所有,转载请联系作者获得授权。本回答被提问者和网友采纳
R语言进行制表
可以使用table()函数创建、修改、编辑表格对象,还可以以此函数创建更复杂的列联表。
一、制作列联表
1.对向量创建列联表
对于向量data=3 5 7 5 3 2 6 8 5 6 9 4 5 7 3 4,创建的列联表形式如下
> table(data)
data
2 3 4 5 6 7 8 9
1 3 2 4 2 2 1 1
第一行为向量中出现的数字,第二行为数字的频数
如果是字符向量也是一样的,如:
data2="mow" "mow" "mow" "mow" "mow" "unmow" "unmow" "unmow" "unmow"
> table(data2)
data2
mow unmow
5 4
2.对数据框创建列联表
如果对数据框直接使用table()函数,得到的列联表通常比较复杂,当数据框的数据都是数值时,情况会更复杂,甚至会分裂为多个表格。
我们可以通过选择列,从数据框中提取想要的列,进而组成列联表,这需要使用$符号进行选择,并使用dnn=进行行列命名
如果要在数据框中提取想要的行,首先要将数据框转换成矩阵,再进行提取,转换的方法有使用as.matrix()或者使用转置函数t()。
3.对矩阵创建列联表
可以直接使用table()函数对矩阵,但是得到的结果和对向量使用一样,只是每个数字的频数列表,矩阵不能使用$符号,但是可以使用[]选择行或列。
二、创建复杂的列联表
table()函数可以设置条件以制作不同的列联表,但是这样的话,结果会被分为若干个表格,如果使用ftable(),则可以避免此类情况,使用ftable()得到的结果数据类型为ftable()。
ftable()除了可以使用$符合进行选择变量之外,还有一个通用格式为:
ftable(column~row1+row2+...,data)
~符号用来创建一个公式,左侧为列变量、右侧为行变量,多个行或列变量可以通过+组合。
三、在列联表的基础上再制表
如果面对一个已经是列联表的对象,只是希望将其重新组合,那么需要使用xtabs()函数,
格式为:xtabs(freq~cateories11+cateories2+...,data)
~左侧为频数,右侧为分类,默认第一个变量为行分类、第二个变量为列分类
以上是关于r语言table函数能像frame以表格的形式输出么的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用gt包和gtExtras包优雅地漂亮地显示表格数据:gtExtras包的gt_sparkline函数以表格的形式可视化分组数据的线图(line plot)包含分组类别分组类别对应的数值