R 语言 数据预处理 方法和步骤

一、分析单变量常用的函数

用R 自带的数据BJsales

#基本数据查看
#均值
View(BJsales)
mean(BJsales)
mean(BJsales,trim = 0.1)
#中位数
median(BJsales)
#分位数
quantile(BJsales)
quantile(BJsales,c(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9))
#分布图
par(mfrow= c(2,2))
hist(BJsales)
#离散度
#极值
range(BJsales)
#方差(方差越大越离散)平方
var(BJsales)
#标准差(方差的标准化)开平方
sd(BJsales)
#标准化(标准化以后可以比较两个变量的方差和标准差)
scale(BJsales)
#标准误(和标准差相比消除了长度的影响)
error <- sqrt(var(BJsales)/length(BJsales))
error
#偏度峰度函数
mystats <- function(x,na.omit=F){
  if (na.omit) x <- x[!is.na(x)]
  m <- mean(x)
  n <- length(x)
  s <- sd(x)
  skew <- sum((x-m)^3/s^3)/n
  kurt <- sum((x-m)^4/s^4)/n-3
  return(c(n=n,mean=m,stdev=s,skew=skew,kurtosis=kurt))
}
mystats(BJsales)

二、R 提供的统计汇总函数

用R 自带的数据attenu

#查看数据集(地震观测站的信息)
#event:编号mag:级数station:站台号dist:震源距accel:最大加速度
library(datasets)
View(attenu)
sapply(attenu,class)
attributes(attenu)
str(attenu)
#基本函数
summary(attenu)
library(Hmisc)
describe(attenu)
library(fBasics)#金融领域的软件包
basicStats(attenu$accel)
#分布指数
library(timeDate)#金融领域的软件包

三、异常值查看和处理

#异常值
#箱线图
boxplot(attenu$dist)
boxplot.stats(attenu$dist)
#处理方法:简单粗暴的删除法
N <- which(attenu$dist %in% boxplot.stats(attenu$dist)$out)
boxplot(attenu[-N,]$dist)#还存在异常值说明方法错误
#盖帽法(不多说)
#多峰异常值处理LOF算法
library(DMwR)
lofactor(attenu$dist,k=5)

四、缺失值的查看和处理

用R 自带的数据airquality

#缺失值
library(mice)
md.pattern(airquality)
#含缺失值的行
notna <- complete.cases(airquality)
nrow(airquality[which(notna==F),])
#删除方法:简单粗暴
airquality_N <- na.omit(airquality)
#均值填写
airquality[is.na(airquality$Ozone),"Ozone"] <- mean(airquality$Ozone,na.rm = T)
#中位数填写
airquality[is.na(airquality$Ozone),"Ozone"] <- median(airquality$Ozone,na.rm = T)
#按照相关性进行填写(欧氏距离)
library(DMwR)
airquality <- knnImputation(airquality,k=10,meth = "mean")
#回归方法(后续补充)

五、相关性分析

#相关性
library(rattle)
airquality_N <- na.omit(airquality)
cor_airquality_N <- cor(airquality_N)
#图形展示
library(ellipse)
plotcorr(cor_airquality_N,col = rep(c("white","black"),5))
plotcorr(cor_airquality_N,diag = T,type = "lower",col = rep(c("white","black"),5))
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值