自学笔记6数据框

  2.2.4数据框

继续学习数据框。下面学习数据框的基本操作。

先来创建下面数据框操作需要用到的矩阵和数据框

b3-matrix(1:15,3,5)#构建矩阵b3,1到15的数值,3行,5列。b3#显示b3。

##[,1][,2][,3][,4][,5]##[1,]##[2,]##[3,]

name-c("one","two","three","four","five","six","seven","eight")#构建字符型向量name。factor-c("a","b","a","b","a","b","a","b")values-c(1,2,3,4,5,6,7,8)#构建数值型向量values。values2-c(8,7,6,5,4,3,2,1)#构建数值型向量values2。A-data.frame(name,factor,values,values2,row.names=c("r1","r2","r3","r4","r5","r6","r7","r8"))#创建数据框A。A#显示结果A。

##namefactorvaluesvalues2##r1onea18##r2twob27##r3threea36##r4fourb45##r5fivea54##r6sixb63##r7sevena72##r8eightb81

str(A)#查看数据结构

##data.frame:8obs.of4variables:##$name:chr"one""two""three""four"...##$factor:chr"a""b""a""b"...##$values:num##$values2:num.数据框操作

is.data.frame(A)#is.data.frame()用于判定数据是否是数据框。若是,返回值为TURE,不是,返回FALSE。

##[1]TRUE

b3-as.data.frame(b3)#as.data.frame()用于将数据转换为数据框。这里将矩阵b3转为数据框。b3#显示结果。

##V1V2V3V4V5##1##2##3

colnames(b3)[3]-"value"#修改数据框b3第3列列名为value。要修改行名用rownames(A)[行号,列号]-“新名称”。b3#显示结果。

##V1V2valueV4V5##1##2##3

colnames(b3)-c("列1","列2","列3","列4","列5")#对数据框b3的所有列重命名。b3#显示结果。

##列1列2列3列4列5##1##2##3

A#显示数据框A。

##namefactorvaluesvalues2##r1onea18##r2twob27##r3threea36##r4fourb45##r5fivea54##r6sixb63##r7sevena72##r8eightb81

t(A)#数据框转置。

##r1r2r3r4r5r6r7r8##name"one""two""three""four""five""six""seven""eight"##factor"a""b""a""b""a""b""a""b"##values"1""2""3""4""5""6""7""8"##values2"8""7""6""5""4""3""2""1"

A[1,]-c(1,1,1,1)#修改数据框A第1行的数据。A#显示结果A。

##namefactorvaluesvalues2##r##r2twob27##r3threea36##r4fourb45##r5fivea54##r6sixb63##r7sevena72##r8eightb81

A[,2]-c(2,4,6,8,10,12,14,16)#修改数据框A第2列的数据。A#显示结果A。

##namefactorvaluesvalues2##r##r2two##r3three##r4four##r5five##r6six##r7seven##r8eight

A[1,1]-"one"#修改第1列第1行的值。A#显示结果A。

##namefactorvaluesvalues2##r1one##r2two##r3three##r4four##r5five##r6six##r7seven##r8eight

A$values-as.character(A$values)#将数据框A中values列类型从数值型改为字符型。class(A$values)#查看结果。

##[1]"character"

A$values-as.numeric(A$values)#从字符型转换会数值型。class(A$values)#查看结果。

##[1]"numeric"

A[9,]-c("nine","a",18,0)#给数据框A增加第9行。A#显示结果。

##namefactorvaluesvalues2##r1one##r2two##r3three##r4four##r5five##r6six##r7seven##r8eight##9ninea

A[,4]-c(1,3,5,7,9,11,13,15,17)#增加新列。A#显示结果。

##namefactorvaluesvalues2##r1one##r2two##r3three##r4four##r5five##r6six##r7seven##r8eight5##9ninea

A$values1-c(1,1,2,2,3,3,4,4,5)#增加新列,列名为values1。A#显示结果。

##namefactorvaluesvalues2values1##r1one1##r2two1##r3three2##r4four2##r5five3##r6six3##r7seven4##r8eight54##9ninea5

A-data.frame(A,values3=c("a","b","a","b","a","b","a","b","a"))#在原有数据框的基础上使用data.frame()函数新增列。A#显示结果。

##namefactorvaluesvalues2values1values3##r1one1a##r2two1b##r3three2a##r4four2b##r5five3a##r6six3b##r7seven4a##r8eight54b##9ninea5a

A-A[-9,]#删除第9行。A#显示结果。

##namefactorvaluesvalues2values1values3##r1one1a##r2two1b##r3three2a##r4four2b##r5five3a##r6six3b##r7seven4a##r8eight54b

A-A[,-4]#删除第4列数据。A#显示结果。

##namefactorvaluesvalues1values3##r1onea##r2twob##r3threea##r4fourb##r5fivea##r6sixb##r7sevena##r8eightb5.数据框排序

A[order(A$values1),]#数据框排序,按照values1进行,order函数默认是升序。

##namefactorvaluesvalues1values3##r1onea##r2twob##r3threea##r4fourb##r5fivea##r6sixb##r7sevena##r8eightb

A[order(-A$values1),]#对数据框A以values1变量降序排列。

##namefactorvaluesvalues1values3##r7sevena##r8eightb##r5fivea##r6sixb##r3threea##r4fourb##r1onea##r2twob

A[order(A$name,decreasing=T),]#当排序依据变量为数值型时,前面加-就是按照降序排列,但是当变量为字符型时,就需在order函数中指定参数decreasing,T为TRUE,即降序。本例中为英文字母,所以降序按照英文字母首字母排序。

##namefactorvaluesvalues1values3##r2twob##r3threea##r6sixb##r7sevena##r1onea##r4fourb##r5fivea##r8eightb

A[order(A$values,-A$values1),]#以values升序排列,以values1为降序排列。

##namefactorvaluesvalues1values3##r1onea##r2twob##r3threea##r4fourb##r5fivea##r6sixb##r7sevena##r8eightb

sort(A$values3)#也可以用sort()函数进行排序。使用方法与order基本相同。

##[1]"a""a""a""a""b""b""b""b"

参考资料:

R语言数据排序,

  转载请注明原文网址:http://www.hualongdn.com/qcjz/113812.html
  • 上一篇文章:
  • 下一篇文章: