从零开始学R数据分析,数据预处理

上一节讲到R数据清洗内容,主要包括缺失值处理、特殊字符处理、大小写转换、数据格式转化、重复值处理、数值替换,本节在R数据清洗的内容上继续学习R数据预处理,内容包括数据合并(横向合并、纵向合并),自定义排序等内容,下面一起学习。

示例工具:R x64 3.5.3、RStudio

本文讲解内容:数据预处理

适用范围:数据合并、自定义排序


从零开始学R数据分析,数据预处理


1 数据合并

数据合并这里主要有三种方法进行合并,包括数据表的纵向合并、横向合并以及增加新字段的方法,将多个小表合并为一个大表。

1.1 纵向合并

纵向合并的意思就是在数据表的后面追加新的行记录,比如在EXCEL中使用复制粘贴功能往下增加新的行记录,在R中使用rbind()函数来纵向合并,这里首先构建一个data数据表,数据表内容如下。

#手动创建数据表data
data<-data.frame(ID=c("c001","c002","c003","c004","c005","c006","c007","c008","c009","c010"),
                 NAME=c("Rmesh","Khilan","Kaushik","Chaitali","Hardik","Komal","Tom","Muffy","Susan","Kevin"),
                 AGE=c(23,20,23,25,27,24,26,31,26,30),
                 ADDRESS=c("Ahmed","Delhi","Kota","Mumbai","Bhopal","MP-A","MP-B","Indore","JP-No.1","JP-No.2"),
                 SAL=c(2000,1500,2000,5000,8500,6500,5500,9500,7000,9000))
从零开始学R数据分析,数据预处理

然后构建一个data1数据表,数据表如下。

#手动创建数据表data1
data1<-data.frame(ID=c("c011","c012"),
                  NAME=c("Ami","Dave"),
                  AGE=c(30,28),
                  ADDRESS=c("Ahmed","Delhi"),
                  SAL=c(8500,8000))
从零开始学R数据分析,数据预处理

使用rbind函数,将data和data1两个数据表纵向合并起来。

#合并数据表
data<-rbind(data,data1)
从零开始学R数据分析,数据预处理

1.2 横向合并

横向合并类似于EXCEL中的VLOOKUP函数的用法,在R中使用merge()函数进行横向合并,创建一个新的数据表data2,包含ID、GENDER和LEVEL三个字段。

#手动创建数据表data2
data2<-data.frame(ID=c("c001","c002","c003","c004","c005","c006","c007","c008","c009","c010"),
                  GENDER=c("female","female","male","female","female","male","male","male","female","male"),
                  LEVEL=c("Bachelor","Bachelor","Bachelor","Bachelor","Master","Master","Bachelor","Doctorate","Master","Doctorate"))
从零开始学R数据分析,数据预处理

使用merge函数将data和data2两个数据表横向合并,合并的方式为inner,该方法将两个数据表中共有的数据匹配到一起生成新的数据表,这里共有的字段是ID。

#数据表合并 inner模式
data<-merge(data,data2,by='ID')
从零开始学R数据分析,数据预处理

除了inner方式以外,合并的方式还有left、right和outer方式。

#数据表合并 left模式
data<-merge(data,data2,all.x=TRUE,by='ID')
从零开始学R数据分析,数据预处理

数据表合并后,可以重置数据表的索引,默认状态下索引是从1开始向下排列。

从零开始学R数据分析,数据预处理

这里使用rownames()函数,将ID这一列设置为索引列。

#设置索引列
rownames(data)=data$ID
从零开始学R数据分析,数据预处理

1.3 增加新字段

增加新字段也可以实现表的合并,要增加新字段可以将现有的字段进行合并,或者通过现有字段进行计算后生成新字段,字段合并首先用paste()函数将两个字段合并为一个字段,然后使用cbind()函数合并到数据表。

#合并两个字段的内容
ID_NAME<-paste(data$ID,data$NAME)
data=cbind(data,ID_NAME)
从零开始学R数据分析,数据预处理

另一种方法是对数据表中的字段进行计算,产生新的字段,首先计算SAL的平均值,保留两位小数,结果如下。

#计算新字段并合并
AVG_SAL=round(mean(data$SAL),digits = 2)
从零开始学R数据分析,数据预处理

然后,使用cbind函数将计算字段合并到表。

#计算新字段并合并
data=cbind(data,AVG_SAL)
从零开始学R数据分析,数据预处理

2 自定义排序

2.1 降序排列

在R中使用order函数进行排序,这里对SAL列进行排序,当decreasing为TRUE时表示降序排序。

从零开始学R数据分析,数据预处理

2.2 升序排列

若省略decreasing参数,默认为正序排序。

#对数据表按SAL列进行排序(正序)
data[order(data$SAL),]
从零开始学R数据分析,数据预处理

2.3 自定义排列

也可以同时对数据表中的多列进行排序,这里对SAL和AGE两列降序排列。

#对多列进行排序
data[order(data$SAL,data$AGE,decreasing = TRUE),]
从零开始学R数据分析,数据预处理

展开阅读全文

页面更新:2024-03-13

标签:新字   升序   数据   纵向   字段   横向   函数   数据表   排列   索引   两个   方式   方法   降序   内容   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top