R因子
因子用于存储不同类别的数据类型,R语言创建因子使用factor()函数,向量作为输入函数,factor()函数语法格式:
factor(x=character(),levels,labels=levels,exclude=NA,ordered=is.ordered(x),nmax=NA)
参数说明:
x:向量
levels:指定各水平值,不指定时由x的不同值来求得
labels:水平的标签,不指定时用各水平值的对应字符串
exclude:排除的字符
ordered:逻辑值,用于指定水平是否有序
nmax:水平的上限数量
因子水平标签
生成因子水平
可以使用gl()函数来生成因子水平,语法格式如下:
gl(n,k,length=n*k, labels=seq_len(n),ordered=FALSE)
参数说明:
n:设置level的个数;
k:设置每个level重复的次数
length:设置长度
labels:设置level的值
ordered:设置是否level是排列好顺序的,布尔值。
R数据框
数据框可以理解为常用的表格
数据框是R语言的数据结构,是特殊的二维列表;
数据框每一列都有一个唯一的列名,长度都是相等的,同一列的数据类型需要一致,不同列的数据类型可以不一样。
R语言数据框使用data.frame()来创建,语法格式如下:
data.frame(..., row.names = NULL, check.rows = FALSE, check,names = TRUE, fix.empty,names = TRUE, stringAsFactors = default.stringsAsFactors())
...:列向量,可以是任何类型(字符型、数值型、逻辑型),一般以tag=value的形式表示,也可以是value。
row.names:行名,默认为NULL,可以设置为单个数字、字符串和数字的向量。
check.rows: 检测行的名称和长度是否一致。
fix.empty.names:设置未命名的参数是否自动设置名字。
stringsAsFactor:布尔值,字符是否转换为因子,factory-fresh默认值是TRUE,可以通过设置选项来修改。
以下创建一个简单的数据框。
数据框的结构可以用str()函数来展示:
summary()可以显示数据框的概要信息:
可以通过指定某一行的数据。
扩展数据框
剋对已有的数据框进行扩展,如下:
可以使用cbind()函数将多个向量合成一个数据框:
如果要对两个数据框合并可是使用rbind()函数
R数据重塑
合并数据框
R语言合并数据框使用merge()函数
merge()函数语法格式如下:
#S3方法
merge(x,y,...)
#data.frame的S3方法
merge(x,y,by=intersect(names(x),names(y)),
by.x=by,by.y=by,all=FALSE,all.x=all,all.y=all,
sort=TRUE,suffixes=c(".x",".y"),no.dups=TRUE,
incomparables=NULL,...)
常用参数说明:
by,by.x,by.y:指定两个数据框中匹配列名称,默认情况下使用两个数据框中相同列名称
x,y:数据框
all:逻辑值,all=L和all.y=L的简写,L可以是TRUE和FALSE
all.x:逻辑值,默认为FALSE,如果为TRUE,显示x中匹配的行,即便y中没有与之对应匹配的行,y中没有匹配的行用NA来表示
all.y:逻辑值,默认为FALSE,如果为TRUE,显示y中匹配的行,即便x中没有与之对应的行,x中没有与之匹配的行用NA表示
sort:逻辑值,是否对列进行排序
merge()函数与MySQL的JOIN函数比较相似。
数据整合和拆分
R语言使用melt()和cast()函数来对数据进行整合和拆分。
melt():宽格式数据转化成长格式。
cast():长格式数据转化成宽格式。
melt()函数将数据的每一个堆叠到一个列中。
进行操作之前,需要安装依赖包,MASS。