赞
踩
R语言拥有许多用于存储数据的对象类型,从结构角度来看包括向量(vector)、矩阵(matrix)、数组(array)、数据框(data frame)、因子(factor)、列表(list)。它们在存储数据的类型、创建方式、结构复杂度,以及用于定位、访问、添加、删除其中个别元素等方面均有所不同。本文将主要讲解数据框的创建、访问以及基本运算,若需了解其他数据类型相关操作,欢迎感兴趣的朋友访问个人主页,或点击上文蓝字链接跳转至相关文章。
在R语言中,数据框(dataframe)的组织结构和矩阵有一些相似,但是数据框的不同列可以包含不同模式(数值型、字符型等)的数据,数据框的概念较矩阵来说更为一般。一般情况,数据框的每列是一个变量,每行是一个观测样本,虽然数据框内不同的列可以是不同的数据模式,但是数据框内每列的长度必须相同,并且每一列的数据类型必须一致,而且数据框将是R中最常处理的数据结构。
在实际工作中,有时由于数据有多种模式,无法将此数据集放入一个矩阵,在这种情况下,使用数据框是最佳选择。
#通过函数 data.frame() 创建,可以写在一起,也可以先储存在向量里面 studentID <- c(1:3) sex <- c("type1","type2","type1") age <- c("17","18","19") grade <- c("good","excellent","bad") students <- data.frame(studentID,sex,age,grade) students is.data.frame(students) df <- data.frame(name=c("aaa","bbb","ccc"),age = c(18:20)) df row.names(df) = c("11","22","33") #添加行名 df #通过as.data.frame,可以将列表、数组、矩阵等形式转化为数据框 help("data.frame") df <- list(name=c("aaa","bbb","ccc"),age = c(18:20)) df df <- as.data.frame(df)#列表转化为数据框,其他类似 df #通过expand.grid函数,可以创建所有可能的情况 x<-expand.grid(a=c(1,2),b=c(10,20),c=c("M","F")) x
#查看数据类型 class(x) #查看类型 class(x$a) #查看某列的类型 #查看数据框长度 length(students) #查看数据框的基本统计信息 summary(students) #访问元素 students[1,2] #访问第一行第二列元素 students[1,] #访问第一行元素 students[,2] #访问第二列元素 students[c("age","sex")] #访问这两列元素 students$studentID #访问某一列元素,很常用 #删除某行某列 students[-1,] #不打印第一行 students[,-1] #不打印第一列 students$sex = NULL #删除一列 #添加一行或一列 a <- list(studentID = "4",sex = "type2",age = "20",grade = "一般") students = rbind(students,as.data.frame(a)) #加一行 b <- list(height = c("178","168","173","182")) students <- cbind(students,as.data.frame(b)) #加一列 #修改某个值 students$studentID[2] <- 100 #修改确定列的第几个值 students[1,3] <- 20 #修改某行某列的值 #访问数据的首末行 head(students,n = 1) #默认情况是6行 tail(students,n = 1) #修改列名 names(students)[1:2] = c("1","2") colnames(students) = c("1","2","3","4","5")
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。