首页 > 其他分享 >R数据分析,数据清洗

R数据分析,数据清洗

时间:2022-11-10 10:01:42浏览次数:43  
标签:数据分析 函数 填充 数据 AGE 数据表 数据格式 清洗 data


R数据分析,数据清洗_数据

数据获取后不能直接对数据进行分析,“脏数据”会直接影响最终的数据结论,需要对数据进行初步的处理,本文主要讲解数据获取后数据清洗内容,主要包括缺失值处理、特殊字符处理、大小写转换、数据格式转化、重复值处理、数值替换,下面一起来学习

R数据分析,数据清洗_特殊字符_02




示例工具:R x64 3.5.3、RStudio

本文讲解内容:数据清洗

适用范围:对于数据的初步清洗




R数据分析,数据清洗_数据_03


案例演示需要创建一组数据表,生成数据表使用data.frame命令,与之前pandas生成数据表类似,生成的数据表如下,该数据包含空值、特殊字符、重复值等。

#手动创建数据表
data<-data.frame(ID=c("c001","c002","c003","c004","c005","c006","c007","c008","c009","c0010"),
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,NA,8500,NA,5500,9500,NA,900))

R数据分析,数据清洗_数据格式_04

一、缺失值处理

缺失值处理可以直接删除空值或者对空值进行填充,缺失值填充有用0填充或者用均值填充等方法,删除数据表中的空值使用na.omit()函数,数据结果如下所示。

#删除包含空值的行
data_NA<-na.omit(data)

R数据分析,数据清洗_数据_05

除此之外也可以使用数字对空值进行填充,下面的代码使用0对空值字段进行填充。

#将空值填充为0
data[is.na(data)] <- 0

R数据分析,数据清洗_数据格式_06

除了使用0填充外,还可以使用均值填充,首先,在要填充的数值中使用mean()函数先计算SAL列当前的均值,然后,使用这个均值对NA进行填充,计算出SAL列的平均值如下:

mean(data_NA$SAL)

R数据分析,数据清洗_数据格式_07

#将空值填充为均值
data[is.na(data)] <- mean(data_NA$SAL)

R数据分析,数据清洗_数据格式_08

二、特殊字符处理

特殊字符处理如字符前无法察觉的空格,有时候也会产生不可避免的错误,需要数据清洗。


R数据分析,数据清洗_数据格式_09


处理字符前的空格,首先需要安装raster和sp包,当界面出现sccessfully的字样时,表示已经安装成功,然后加载这两个包。

#安装raster和sp包
install.packages("raster")
install.packages("sp")
#加载raster和sp包
library('sp')
library('raster')

R数据分析,数据清洗_数据格式_10

去除字符前空格需要使用trim函数,如果对于trim函数的参数释义不熟悉的话,可以调用帮助文档,在函数前加个问号即可调用。

#调用trim函数的帮助文档
?trim

R数据分析,数据清洗_数据_11

加载完成后使用trim()函数完成对字符中空格的清洗。

#去SAL字段中的空格并替换原有字段
data_address=as.vector(data$ADDRESS)
df_A=trim(data_address)
data$SAL=df_A

R数据分析,数据清洗_数据格式_12

三、大小写转换

R中使用tolower函数将大写转化为小写,将NAME列的所有字母大写转换为小写,得出结果如下。

#转化为小写字母
data$NAME=tolower(data$NAME)

R数据分析,数据清洗_数据_13

四、数据格式转化

R中通过as.integer()函数或者as.character来修改数据格式,首先使用typeof函数查看数据类型,这里可以看到AGE这一列是数值类型。

#查看数据的格式
typeof(data$AGE)

R数据分析,数据清洗_数据_14

as.integer()函数将数据格式转化为整型。

#更改数据格式
data$AGE=as.integer(data$AGE)
#查看修改后的数据格式
typeof(data$AGE)

R数据分析,数据清洗_特殊字符_15

as.character()函数将数据格式转化为字符型。

#更改数据格式
data$AGE=as.character(data$AGE)
#查看修改后的数据格式
typeof(data$AGE)

R数据分析,数据清洗_数据格式_16

五、重复值处理

要查看重复值使用duplicated()函数,不仅可以查找数据表的重复值,而且也可以查找特定列中的重复值,返回值为TRUE表示有重复值 。

#查找数据表重复值
duplicated(data)
#查找特定列的重复值
duplicated(data$SAL)

R数据分析,数据清洗_数据格式_17

使用unique()函数删除重复值。

#查看数据表的唯一值(删除重复值)
data_unique<-unique(data$SAL)

R数据分析,数据清洗_特殊字符_18

六、数值替换

要做数值替换,比如将NAME列的Tom替换为LIMING,可以使用gsub函数,替换的结果如下所示。

#字符替换
data$NAME<-gsub('Tom','LIMING',data$NAME)

R数据分析,数据清洗_特殊字符_19


标签:数据分析,函数,填充,数据,AGE,数据表,数据格式,清洗,data
From: https://blog.51cto.com/u_15828536/5839666

相关文章