R语言实战自学笔记5数据框

  苏孜阿甫片价格 http://baidianfeng.39.net/a_wh/140119/4329419.html
2.2.4数据框

数据框(data.frame)是R中最常处理的数据结构。函数:data.frame(col1,col2,col3,….,row.name=NULL,check.rows=FALSE,check.names=TRUE,stringsAsFactors=default.stringsAsFactors())其中的列向量col1,col2,col3,…可为任何类型(如字符型、数值型或逻辑型)。每一列的名称可由函数names指定。row.name用于指定各行(样本)的名称,默认没有名称,使用从1开始自增的序列来标识每一行;check.rows用于用来检查行的名称和数量是否一致,默认为FALSE;check.names来检查变量(列)的名称是否唯一且符合语法,默认为TRUE;stringsAsFactors用来描述是否将字符型向量自动转换为因子,默认转换,若不改变的话使用stringsAsFactors=FALSE来指定即可。每一列数据的模式必须唯一,不过你却可以将多个模式的不同列放到一起组成数据框。

1.创建数据框

A-data.frame(name=c("one","two","three","four","five","six","seven","eight"),values=c(1,2,3,4,5,6,7,8),values2=c(8,7,6,5,4,3,2,1),row.names=c("r1","r2","r3","r4","r5","r6","r7","r8"))#使用data.frame函数创建数据框A,行名定义为r1到r8。A#显示结果A。

##namevaluesvalues2##r1one18##r2two27##r3three36##r4four45##r5five54##r6six63##r7seven72##r8eight81

name-c("one","two","three","four","five","six","seven","eight")#构建字符型向量name。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,values,values2,row.names=c("r1","r2","r3","r4","r5","r6","r7","r8"))#创建数据框A。A#显示结果A。

##namevaluesvalues2##r1one18##r2two27##r3three36##r4four45##r5five54##r6six63##r7seven72##r8eight.数据框索引

R语言的下标索引是从1开始的,且下标索引为负数的话表示删除某个元素,[行下标,列下标]

A[4,]#返回数据框A第4行。

##namevaluesvalues2##r4four45

A[,2]#返回数据框A第2列。

##[1]

A[4,1]#返回数据框A第4行,第1列。

##[1]"four"

A[1:4,]#返回数据框A第1至第4行。

##namevaluesvalues2##r1one18##r2two27##r3three36##r4four45

A[,1:2]#返回数据框A第1至第2列。

##namevalues##r1one1##r2two2##r3three3##r4four4##r5five5##r6six6##r7seven7##r8eight8

A[c(1,4),c(1,3)]#返回数据框A第1和第4行,第1和第3列的数据。

##namevalues2##r1one8##r4four5

Avalues#返回数据框第2列。符可以选取数据框中的某列,前是数据框名,后是列名。

##[1]

A[,-3]#提取第3列以外的其他数据。

##namevalues##r1one1##r2two2##r3three3##r4four4##r5five5##r6six6##r7seven7##r8eight8

A[4,"name"]#通过指定列名,返回到具体值。

##[1]"four"

A[2]#直接得到一个新的数据框,仅包含原数据框A的第2列。[]中输入想要得到的列号就可以。

##values##r11##r22##r33##r44##r55##r66##r77##r88

A[[2]]#访问第2列。

##[1]

A[c(1,2)]#得到新数据框,数据框含原数据框A的列1和列2。

##namevalues##r1one1##r2two2##r3three3##r4four4##r5five5##r6six6##r7seven7##r8eight8

A[which(Avalues4),]#返回数据框values列小于4的数据,which可以输入,等其他条件。

##namevaluesvalues2##r1one18##r2two27##r3three36

A[which(Avalues4),"name"]#返回name列中符合条件为values列中小于4的数据。

##[1]"one""two""three"

A[which(Avalues2

Avalues6),]#返回数据框A中values小于2或大于6的数据。

##namevaluesvalues2##r1one18##r7seven72##r8eight81

A[which(Avalues4Avalues6),]#返回数据框A中values大于4与小于6的数据。

##namevaluesvalues2##r5five54

A[-which(Avalues4Avalues6),]#返回数据框A中values列大于4,小于6以外的数据,相对于上列进行了条件反转。

##namevaluesvalues2##r1one18##r2two27##r3three36##r4four45##r6six63##r7seven72##r8eight81

attach、detach和with()函数attach()可将数据框添加到R的搜索路径中。函数detach()将数据框从搜索路径中移除。函数attach()和detach()最好在你分析一个单独的数据框,并且不太可能有多个同名对象时使用。with()就是把所有操作都限制在数据框上。

attach(A)#将数据框A加入搜索路径。

##Thefollowingobjectsaremasked_by_.GlobalEnv:####name,values,values2

values#显示数据框A中的values列。可以看出调用values列可以直接在程序中输入列名values,而不用再输入Avalues。detach是与attach相反的操作。

##[1]

A1-data.frame(name=c("n1","n2","n3","n4","n5","n6","n7","n8"),values=c(2,1,4,3,6,5,8,7),values2=c(2,3,5,2,4,4,6,5))#创建数据框A1。A1#显示数据框A1。

##namevaluesvalues2##1n##2n##3n##4n##5n##6n##7n##8n

with(A1,{plot(values,values2)})#虽然数据框A和A1有相同的列名称,但是这里用with函数后,{}中只调用数据框A1中的values和values2。

with(A1,{name1-name})#想在with函数中对全局的变量进行赋值,那么需要使用-运算符。name1#显示name1。

##[1]"n1""n2""n3""n4""n5""n6""n7""n8"3.查看数据框

head(A)#查看数据前6行。

##namevaluesvalues2##r1one18##r2two27##r3three36##r4four45##r5five54##r6six63

head(A,3)#查看数据框A前3行数据。

##namevaluesvalues2##r1one18##r2two27##r3three36

tail(A)#查看数据后6行。

##namevaluesvalues2##r3three36##r4four45##r5five54##r6six63##r7seven72##r8eight81

tail(A,5)#查看数据后5行。

##namevaluesvalues2##r4four45##r5five54##r6six63##r7seven72##r8eight81

print(A)#查看数据框A。

##namevaluesvalues2##r1one18##r2two27##r3three36##r4four45##r5five54##r6six63##r7seven72##r8eight81

A#也可以直接输入数据框名称查看数据。也可以在Rstudio种的环境界面直接点击A查看。

##namevaluesvalues2##r1one18##r2two27##r3three36##r4four45##r5five54##r6six63##r7seven72##r8eight81

length(A[,1])#查看数据框行数量。

##[1]8

length(A[1,])#查看数据框列数量。

##[1]3

length(Aname)#查看数据框A中列name的数量。

##[1]8

colnames(A)#查看数据框列名。

##[1]"name""values""values2"

rownames(A)#查看数据框行名。

##[1]"r1""r2""r3""r4""r5""r6""r7""r8"

dim(A)#显示数据框A的维度。8行,3列。

##[1]83

str(A)#查看数据框A的数据结构。

##data.frame:8obs.of3variables:##name:chr"one""two""three""four"...##values:num##values2:num87651

class(A)#查看数据框类型。

##[1]"data.frame"

class(Avalues)#查看数据框列的类型。

##[1]"numeric"

mode(Aname)#显示数据框A中name列的模式。

##[1]"character"

summary(A)#数据框基本描述性统计。

##namevaluesvalues2##Length:8Min.:1.00Min.:1.00##Class:character1stQu.:2.stQu.:2.75##Mode:characterMedian:4.50Median:4.50##Mean:4.50Mean:4.50##3rdQu.:6.rdQu.:6.25##Max.:8.00Max.:8.00

duplicated(Avalues)#查询数据框A中values列是否有重复数据,若有会返回TRUE,若无,返回FLASE。

##[1]FALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE-END-预览时标签不可点收录于话题#个上一篇下一篇

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