R因子R数据框以及R数据重塑

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。 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王辞夜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值