首页 > 其他分享 >R数据分析,数据预处理

R数据分析,数据预处理

时间:2022-11-10 10:01:53浏览次数:44  
标签:数据分析 新字 SAL data 合并 数据表 排序 数据 预处理


R数据分析,数据预处理_数据

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



示例工具:R x64 3.5.3、RStudio

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

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




R数据分析,数据预处理_字段_02


 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数据分析,数据预处理_自定义排序_03

然后构建一个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数据分析,数据预处理_字段_04

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

#合并数据表
data<-rbind(data,data1)

R数据分析,数据预处理_字段_05

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数据分析,数据预处理_字段_06

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

#数据表合并 inner模式
data<-merge(data,data2,by='ID')

R数据分析,数据预处理_自定义排序_07

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

#数据表合并 left模式
data<-merge(data,data2,all.x=TRUE,by='ID')

R数据分析,数据预处理_字段_08

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

R数据分析,数据预处理_自定义排序_09

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

#设置索引列
rownames(data)=data$ID

R数据分析,数据预处理_字段_10

1.3 增加新字段

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

#合并两个字段的内容
ID_NAME<-paste(data$ID,data$NAME)
data=cbind(data,ID_NAME)

R数据分析,数据预处理_字段_11

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

#计算新字段并合并
AVG_SAL=round(mean(data$SAL),digits = 2)

R数据分析,数据预处理_字段_12

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

#计算新字段并合并
data=cbind(data,AVG_SAL)

R数据分析,数据预处理_自定义排序_13

 2   自定义排序

2.1 降序排列

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

R数据分析,数据预处理_数据_14

2.2 升序排列

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

#对数据表按SAL列进行排序(正序)
data[order(data$SAL),]

R数据分析,数据预处理_自定义排序_15

2.3 自定义排列

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

#对多列进行排序
data[order(data$SAL,data$AGE,decreasing = TRUE),]

R数据分析,数据预处理_自定义排序_16


标签:数据分析,新字,SAL,data,合并,数据表,排序,数据,预处理
From: https://blog.51cto.com/u_15828536/5839665

相关文章

  • R数据分析,数据清洗
    数据获取后不能直接对数据进行分析,“脏数据”会直接影响最终的数据结论,需要对数据进行初步的处理,本文主要讲解数据获取后数据清洗内容,主要包括缺失值处理、特殊字符处理、大......
  • R数据分析,数据概览
    对于统计学专业的学生,对于R软件的使用并不陌生,堪称数理统计软件的标配,R软件也可以做数据处理和数据分析,虽说职场工作对于R软件使用不多,但是R软件绝对是科研人数据分析的最爱......
  • jupyter 数据显示设置
    #设置显示行数pd.set_option('display.max_row',None)#设置显示列数pd.set_option('display.max_column',None)#设置显示宽度pd.set_option('display.width',1000)#显示小......
  • SQL数据分析,多表拼接
    在日常数据查询时,绝大多数情况是将表格关联起来进行查询的,而不仅仅是对一张表格的数据进行查询,在之前的例子中,学生表用于存储学生信息、课程表用于存储课程信息、成绩表用于......
  • mysql8.0数据库安装
    1.创建数据库目录文件夹data2.添加配置文件my.ini[mysql]#设置mysql数据库客户端默认字符集default-character-set=UTF8[mysqld]#设置mysql数据库默认端口号,注意端口......
  • Kendo ui grid的数据源Url 在被identityServer保护的情况下的使用方法
    newkendo.data.DataSource({transport:{read:{url:"http://someserver:8554/search",type:'POST',beforeSen......
  • Python 批量导出mysql数据库表结构(转)
    https://blog.csdn.net/weixin_44309131/article/details/124119037?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v......
  • 数据库主从复制方法 以及nginx常用命令汇总
      主从复制可以很好解决一个服务器压力太大的缺点  在实际情况中可以让读一个库 增删查一个库具体步骤由图可知首先主库master会生成二进制日志从库可以开辟一......
  • 大数据如果你只会离线计算,这个项目可以帮你完善一部分知识点
    在大数据开发从业人员中相信很多涉及的工作内容以离线计算居多,对数据是怎么采集的,如何采集,数据结构该设计没有清晰的了解在查阅相关数据产品后发现了某开源的SDK,数据模型设......
  • Session(在服务端访问数据
        ......