久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

R語言 出現矩陣/缺失值的解決方案

這篇文章主要介紹了R語言 出現矩陣/缺失值的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

缺失值處理一般包括三步:

1. 識別缺失數據;

2. 檢查導致數據缺失的原因;

3. 刪除包含缺失值的實例或用合理的數值代替(插補)缺失值。

1.判斷缺失值

函數is.na()、is.nan()和is.infinite()可分別用來識別缺失值、不可能值和無窮值。每個返回結果都是

TRUE或FALSE

na表示缺失值

nan表示NOT A NUMBER

infinite表示+-Inf

一定要親手試x = 0/0,以及x = 1/0


>x <- NA
> is.na(x)
[1] TRUE
> is.nan(x)
[1] FALSE
> is.infinite(x)
 [1] FALSE

函數complete.cases()可用來識別矩陣或數據框中沒有缺失值的行

超級好用


#加載數據集
>data(sleep,package = "VIM")
#沒有缺失值的行
>sleep[complete.cases(sleep),]
#列出有一個或多個缺失值的行
>sleep[!complete.cases(sleep),]

2.圖形探究缺失數


#自己生成圖形
>library("VIM")
>aggr(sleep,prop = FALSE,numbers = TRUE)

matrixplot()函數可生成展示每個實例數據的圖形


#自己生成圖形
marginplot(sleep[c("Gest","Dream")],phc=c(20),col=c("darkgray","red","blue"))

3.刪除缺失值

函數complete.cases()可以用來存儲沒有缺失值的數據框或者矩陣形式的實例(行):


#可以把mydata替換成sleep,延續上面的代碼
>newdata <- mydata[complete.cases(mydata),]

同樣的結果可以用na.omit函數獲得:


#可以把mydata替換成sleep,延續上面的代碼
>newdata <- na.omit(mydata)

兩行代碼表示的意思都是:mydata中所有包含缺失數據的行都被刪除,然后結果才存儲到newdata中,以后擬合就用新數據newdata.

處理含缺失值的數據集時,成對刪除常作為行刪除的備選方法使用。對于成對刪除,觀測只是當它含缺失數據的變量涉及某個特定分析時才會被刪除:


>cor(sleep,use = "pairwise.complete.obs")

3.1補全缺失值

函數mice()首先從一個包含缺失數據的數據框開始,然后返回一個包含多個(默認為5個)完整數據集的對象。

每個完整數據集都是通過對原始數據框中的缺失數據進行插補而生成的。

由于插補有隨機的成分,因此每個完整數據集都略有不同。

然后,with()函數可依次對每個完整數據集應用統計模型(如線性模型或廣義線性模型),最 后 ,pool()函數將這些單獨的分析結果整合為一組結果。

最終模型的標準誤和p值都將準確地反映出由于缺失值和多重插補而產生的不確定性。


>library(mice)
>data("sleep",package = "VIM")
>imp <- mice(sleep,seed = 1234)
#imp <- mice(sleep)
>fit <- with(imp,lm(Dream~Span+Gest))
fit
>pooled <- pool(fit)
>summary(pooled)
imp
>dataset2 <- complete(imp,action = 2)
>cor(sleep,use = "pairwise.complete.obs")

dataset2 is the newData

下圖為完整缺失值處理圖片:

補充:R語言讀取數據空值

一、Txt文件

1. 文件中的內容有雙引號,空值的時候是一對雙引號

filename.txt 文件內容形如:

"ID" "ITEM"

"1080254842" "漢字"

"1080254842" "中文"

"1080594798" ""

"1080594798" ""

導入數據:


test <-read.table("filename.txt",header=TRUE)

空值部分并不是NA,R語言不會把他識別為NA,改為下面的語句,即可解決。


test <-read.table("filename.txt",header=TRUE,na.strings = "")

2. 文件中內容無雙引號,空值即直接空白,形如下面:

ID ITEM

1080254842 漢字

1080254842 中文

1080594798

1080594798

導入數據:


test <-read.table("filename.txt",header=TRUE)

會出現錯誤:Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :3行沒有2元素

第三行第二元素沒有。

修改為如下即可:


test <-read.table("filename.txt",header=TRUE,fill=TRUE)

導入數據成功,但是,空值仍然不是NA,還需加上na.strings = "",


test <-read.table("filename.txt",header=TRUE, fill=TRUE, na.strings = "")

成功導入。

二、csv文件


test <-read.csv("test.csv",header=TRUE,sep=",",na.strings = "")

其中:

header =TRUE,表示把第一行作為標題。

sep=",",因為csv文件的列是用逗號分開的,加上sep=",",幫助R通過識別逗號來分割列。如果沒加,會出現原本多列數據導入后變為一列的情況。

na.strings = "":處理缺失值問題。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持html5模板網。如有錯誤或未考慮完全的地方,望不吝賜教。

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

這篇文章主要介紹了R語言入門教程之刪除指定數據的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
這篇文章主要介紹了R語言及其IDE(RStudio)下載安裝詳細流程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
這篇文章主要給大家介紹了關于R語言數據可視化學習之圖形參數修改的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下
這篇文章主要給大家介紹了關于R語言利用plot()函數畫圖的基本用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來
這篇文章主要介紹了R語言中對數據框的列名重命名的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習
這篇文章主要介紹了詳解R語言中的表達式、數學公式、特殊符號,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
主站蜘蛛池模板: 午夜久久久 | 日韩男人天堂 | 国产精品欧美精品 | 亚洲精彩视频在线观看 | 宅男噜噜噜66一区二区 | 日韩精品一区二区三区中文字幕 | 欧美一级特黄aaa大片在线观看 | 羞羞视频在线观看 | 久久久久久亚洲精品 | 国产精品久久久 | 亚洲免费精品 | 久久大香 | 在线国产一区 | 日韩中文字幕一区二区 | 国产精品久久久久久久毛片 | 日本小视频网站 | 欧美日韩久久久久 | 国产一区视频在线 | 婷婷久| 精品国产乱码久久久久久丨区2区 | 精品国产欧美一区二区 | 亚洲欧洲在线看 | 中文字幕av色 | 福利av在线 | 日日天天 | 一区二区三区国产 | 婷婷免费视频 | 91高清在线观看 | 欧美一区二区激情三区 | 欧美一区二区视频 | 欧美成人一区二区三区 | 国产精品欧美一区二区三区 | 欧美日产国产成人免费图片 | 成人av观看 | 午夜在线观看视频 | 国产精品国产 | 国产午夜精品视频 | 亚洲欧美日韩精品久久亚洲区 | 91精品国产91久久久 | 久久99精品久久久久久狂牛 | 91se在线|