码迷,mamicode.com
首页 > 编程语言 > 详细

R语言进行制表

时间:2017-03-09 19:53:55      阅读:4242      评论:0      收藏:0      [点我收藏+]

标签:abs   提取   函数   nbsp   多个   比较   使用   方法   选择   

可以使用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语言进行制表

标签:abs   提取   函数   nbsp   多个   比较   使用   方法   选择   

原文地址:http://www.cnblogs.com/xmdata-analysis/p/6527019.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!