亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

R語言出現矩陣/缺失值怎么辦

發布時間:2021-03-11 09:20:57 來源:億速云 閱讀:257 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關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補全缺失值

R語言出現矩陣/缺失值怎么辦

函數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語言出現矩陣/缺失值怎么辦

補充: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 = "":處理缺失值問題。

關于“R語言出現矩陣/缺失值怎么辦”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

司法| 聂拉木县| 仁化县| 谷城县| 灵台县| 黎川县| 加查县| 尖扎县| 麟游县| 昭通市| 阆中市| 舒兰市| 彭州市| 阿拉善盟| 河南省| 宁陕县| 航空| 五常市| 桦甸市| 濮阳县| 济宁市| 大名县| 阜新市| 孟津县| 绍兴市| 项城市| 静安区| 永和县| 黔东| 贵港市| 高安市| 磴口县| 承德县| 商南县| 永春县| 龙泉市| 平利县| 四平市| 会东县| 图木舒克市| 东至县|