国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于R軟件的數(shù)據(jù)清洗

2019-10-21 07:42:25馮英華
錦繡·下旬刊 2019年7期

摘 要:大數(shù)據(jù)的處理中數(shù)據(jù)的清洗工作很重要。運(yùn)用R語言對(duì)數(shù)據(jù)清洗,需要對(duì)缺失值、異常值進(jìn)行處理,文章給出了清洗的方法和相關(guān)程序語言。

關(guān)鍵詞:數(shù)據(jù)清洗;缺失值;異常值

現(xiàn)在在數(shù)據(jù)處理與挖掘中數(shù)據(jù)的預(yù)處理是很重要的,數(shù)據(jù)的處理主要是指對(duì)原始數(shù)據(jù)進(jìn)行清洗、集成、變換及規(guī)約。數(shù)據(jù)清洗是將刪除原始數(shù)據(jù)中的一些無關(guān)、重復(fù)數(shù)據(jù),篩選掉一些與挖掘主題沒有關(guān)系的數(shù)據(jù),對(duì)缺失值、異常值進(jìn)行處理。

一、缺失值、異常值的處理

在R中缺失值用NA表示,用is.na()判斷缺失值是否存在。判斷后需進(jìn)行缺失值處理,經(jīng)常用的方法一般有:刪除法、插補(bǔ)法、替換法。

(1)刪除法,這也是最簡單的方法。

na.emit()移除所有含缺失數(shù)據(jù)的行,適用于缺失值占表較少的情況。data[,-p]其中data表示目標(biāo)數(shù)據(jù)集,p表示缺失變量所在的列。適用于變量有較大缺失且對(duì)研究目標(biāo)影響不大的情況,意味著要?jiǎng)h除整個(gè)變量。

(2)替換法。

變量分為數(shù)值型和非數(shù)值型,數(shù)值型變量中缺失的可以用其他所有對(duì)象取值的均值來替換;非數(shù)值型變量中缺失的可以用其他全部有效觀測(cè)值的中位數(shù)或眾數(shù)替換。

(3)插補(bǔ)法,這是比上面兩種都要好的方法。

常用的插補(bǔ)法有,回歸插補(bǔ)法、多重插補(bǔ)法?;貧w插補(bǔ)法,利用回歸模型將需插值補(bǔ)缺的變量作為因變量,其他變量為自變量,通過回歸函數(shù)lm()預(yù)測(cè)出因變量的值來補(bǔ)缺。多重插補(bǔ)法,從一個(gè)包含缺失值的數(shù)據(jù)集中生成一組完整的數(shù)據(jù),如此多次,從而產(chǎn)生缺失值的一個(gè)隨機(jī)樣本。

異常值的處理方式一般有:1、刪除;2、變?yōu)槿笔е堤幚?3、如果是正確的異常值,可以直接在有異常值的數(shù)據(jù)集上建模。

二、常用的R程序語言有

#讀取銷售數(shù)據(jù)文件,提取標(biāo)題行。

inputfile=read.csv(‘./catering_sale.csv,he=T)/讀取當(dāng)前工作目錄下的文件

inputfile=read.csv(‘E:/R_Files/…/catering_sale.csv,he=T)/讀取完整工作目錄下的文件

#變換變量名。

inputfile=data.frame(sales=inputfile$銷量,date=inputfile$日期)

#數(shù)據(jù)截取。

Inputfile=inputfile[5:16,] #取5—16行

R中工作目錄:

(1) getwd()函數(shù)顯示當(dāng)前工作目錄

(2) setwd()更改當(dāng)前目錄,用法:

dir.ceate(“E:/R_Files”)/創(chuàng)立一個(gè)目錄(setwd不會(huì)自動(dòng)創(chuàng)建一個(gè)不存在的目錄,另:dir.ceate一次只能創(chuàng)建一個(gè)”/”路徑,如有多個(gè)”/”就需創(chuàng)建多次。)

setwd(“E:/R_Files”)更改到

getwd()顯示當(dāng)前工作目錄

也可不用dir.ceate()函數(shù),直接手動(dòng)建立目標(biāo)文件夾后再setwd更改。

(3)判斷是否缺失:

is.na(inputfile) /判斷是否存在缺失。

n=sum(is.na(inputfile)) /輸出缺失個(gè)數(shù)。

(4)異常值識(shí)別:

par(mfrow=c(1,2)) #將繪圖窗口劃為1行2列,同時(shí)顯示。

dotchart(inputfile$sales) #繪制水平箱形圖。

boxplot(inputfile$sales,horizontal=T) #繪制水平箱形圖。

(5)異常值處理:

inputfile$sales[5]=NA #將第5個(gè)銷量值處理成缺失值。

fix(inputfile) #表格形式呈現(xiàn)數(shù)據(jù)。

(6)缺失值處理:

inputfile$date=as.numeric(inputfile$date) #將日期轉(zhuǎn)換為數(shù)值型變量。

sub=which(is.na(inputfile$sales)) #識(shí)別缺失值所在行數(shù)。

sub #出現(xiàn)行數(shù)值。

inputfile1=inputfile[-sub,] #完整(將數(shù)據(jù)集分成完整數(shù)據(jù)和缺失數(shù)據(jù)兩部分)。

Inputfile2=inputfile[sub,] #缺失。

(7)行刪除法處理缺失,結(jié)果轉(zhuǎn)存。

result1=inputfile1

(8)均值替換法處理缺失。

avg_sales=mean(inputfile1$sales) #求銷量表完整部分的平均值(未缺失部分均值)。

inputfile2$sales=rep(avg_sales,n) #用均值替換缺失。

result2=rbind(inputfile1,inputfile2) #將1、2兩部分合并(并入完成插補(bǔ)的數(shù)據(jù))。

(9)回歸插補(bǔ)法處理缺失,結(jié)果轉(zhuǎn)存。

model=lm(sales~date,date=inputfile) #回歸模型擬合。

inputfile2$sales=predict(model,inputfile2) #模型預(yù)測(cè)。

result3=rbind(inputfile1,inputfile2) #將兩部分合并

(10)多重插補(bǔ)法處理缺失,結(jié)果轉(zhuǎn)存。

library(lattice) #調(diào)入函數(shù)包。

library(mass) #函數(shù)、應(yīng)用統(tǒng)計(jì)包。

library(nnet) #神經(jīng)網(wǎng)絡(luò)包。

library(mice) #多重插補(bǔ)。

imp=mice(inputfile,m=4) #4重插值,即生成4個(gè)無缺失數(shù)據(jù)集。

fit=with(imp,lm(sales~date,data=inputfile)) #選擇插補(bǔ)模型。

pooled=pool(fit) #將單獨(dú)的分析結(jié)果整合為一組結(jié)果。

summary(pooled) #獲取描述性統(tǒng)計(jì)量可以提供最大、最小、四分位數(shù)、均值……

result4=complete(imp,action=3) #選擇第3個(gè)插補(bǔ)數(shù)據(jù)集作為結(jié)果。

參考文獻(xiàn)

[1]周蘇,馮嬋璟,王碩蘋,等.大數(shù)據(jù)技術(shù)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2016:3-4.

[2]曾劍平.互聯(lián)網(wǎng)大數(shù)據(jù)處理技術(shù)與應(yīng)用[M].北京:清華大學(xué)出版社,2017:5-6.

作者簡介:

馮英華(1977--),男,山東壽光人,濰坊科技學(xué)院副教授,碩士。主要研究方向:應(yīng)用數(shù)學(xué)

基金項(xiàng)目:濰坊科技學(xué)院2018年度校級(jí)課題(人文社科類)重點(diǎn)項(xiàng)目,項(xiàng)目編號(hào):2018RWZD10。

柯坪县| 惠安县| 屏山县| 屯门区| 洛浦县| 平度市| 大同县| 青龙| 平阴县| 象山县| 杂多县| 安化县| 灯塔市| 阳朔县| 织金县| 施甸县| 松桃| 长白| 湘西| 墨竹工卡县| 福安市| 兴国县| 赣榆县| 昌江| 赤水市| 南丹县| 临朐县| 杭锦后旗| 温泉县| 阿坝县| 嘉定区| 富平县| 南京市| 铜川市| 左云县| 建瓯市| 凤凰县| 东兰县| 南阳市| 阜阳市| 开原市|