渐进--R语言基本知识上一篇里我们介绍了R的基本数据类型,今天着重介绍R语言中的数据框(也有叫数据帧)(data.frame)类型。data.frame是数据分析中的利器,数据切片、索引、聚合、分组等都离不开它,是R中应用最广泛的数据类型。好啦,话不多说,下面上干货~~
首先,来创造你的第一个数据框:
- age = c(10,20,30,40,50,60,70) #创建一个向量,多个元素时用从c()封装。#在R中表示注释,后面代码并不执行。
- name = c('小王','小明','小李','小赵','小周','小吴','小陈') #创建一个字符串向量,字符串需要用引号封闭。
- class = c('一班','二班','三班','四班','五班','六班','七班')
- student_infor = data.frame(age, name, class) #创建数据框
复制代码用R语言读取csv、txt、xls等格式的文件时,一般都读成数据框。那么数据框中的数据如何操作呢?且看以下分解: (1)数据索引和切片一:列名索引
上面的student_infor有三列,每列有列名。例如选取age列:- student_infor$age # $符号,键盘上用shift+4输入
复制代码 $符号是不是很奇怪~~。可以这么理解,让别人在后面跟着,当然得先给钱了~~。当然,下面的选取方式也是可行的。选取多列用c()将列名封闭:
- student_infor[c('age','name')]
复制代码二:数字索引
也可以通过数字选取: - student_infor[1] #选取第一列
- student_infor[1:2] #选取第1到2列
- student_infor[c(1,3)] #选取第1和第3列
复制代码三:行号索引 - student_infor[1,] #选取第一行
- student_infor[1:5,] #选取第1到5行
- student_infor[c(1,4,6),] #选取第1、4、6行
复制代码(2)数据筛选 筛选符合条件的数据是经常用到的技巧(类似excel中的透视表),请看如下操作示例: - #将student_infor中小李的信息筛选出来
- student_infor[which(student_infor$name == '小李'),]
复制代码- #选取年龄大于10的学生
- student_infor[which(student_infor$age > 10),]
复制代码- #选取年龄大于10并小于50的学生
- student_infor[which(student_infor$age > 10 & student_infor$age < 50),]
复制代码 (3)数据框的增、删、改
一:改列名- names(student_infor) #获取列名
- names(student_infor)[2] = 'student_name' #将第二列的名字改为student_name
复制代码 二:增加新的列- #创建一个新向量student_city
- student_city = c('北京','上海','广州','深圳','杭州','苏州','天津')
- #将city添加到student_infor数据框里
- student_infor$city = student_city
复制代码 三:删除列- 这样就把第一列去掉了
- student_infor_new = student_infor[-1]
- #也可以直接选择,达到去除其它列的目的
- student_infor_new = student_infor[1:3]
复制代码 (4)数据框的常用函数
当我们可以对数据进行一些预览之类的操作,如下:- summary(student_infor) #查看数据框总结
复制代码- head(student_infor) #查看前几行
- tail(student_infor) #查看后几行
复制代码 最后的实操:
求student_infor中age列的平均值、最大值、最小值、标准差、中值。
- mean(student_infor$age)
- max(student_infor$age)
- min(student_infor$age)
- sd(student_infor$age)
- median(student_infor$age)
复制代码
|