一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - R語言 - R語言中na.fail和na.omit的用法

R語言中na.fail和na.omit的用法

2022-01-11 15:18SThranduil R語言

這篇文章主要介紹了R語言中na.fail和na.omit的用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

實際工作中,數據集很少是完整的,許多情況下樣本中都會包括若干缺失值NA,這在進行數據分析和挖掘時比較麻煩。

R語言通過na.fail和na.omit可以很好地處理樣本中的缺失值

1、na.fail(<向量a>): 如果向量a內包括至少1個NA,則返回錯誤;如果不包括任何NA,則返回原有向量a

2、na.omit(<向量a>): 返回刪除NA后的向量a

3、attr( na.omit(<向量a>) ,”na.action”): 返回向量a中元素為NA的下標

4、is.na:判斷向量內的元素是否為NA

example:

?
1
2
3
4
5
6
7
8
9
10
11
12
data<-c(1,2,NA,2,4,2,10,NA,9)
data.na.omit<-na.omit(data)
data.na.omit
    [1]  1  2  2  4  2  10  9
    attr(,"na.action")
    [1] 3 8
    attr(,"class")
    [1] "omit"
attr(data.na.omit,"na.action")
    [1] 3 8
    attr(,"class")
    [1] "omit"

另外還可以使用!x方式方便地刪除NA。

例如:

?
1
2
3
a<-c(1,2,3,NA,NA,2,NA,5)
a[!is.na(a)]
    [1] 1 2 3 2 5

其中,is.na用于判斷向量內的元素是否為NA,返回結果:c(FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE),即a內元素為NA,其對應的下標元素是TRUE,反之是FALSE。

!x是取非邏輯運算符,!is.na(a)表示a內元素不為NA,其對應的下標元素是TRUE,反之是FALSE。

通過a[!is.na(a)]進行索引后,即可取出a內不為NA的元素,將其過濾。

其中,函數na.fail和 na.omit 不僅可以應用于向量,也可以應用于矩陣和數據框。

example:

?
1
2
3
4
5
6
7
8
9
10
11
12
data <- read.table(text="
a b c d e f
NA 1 1 1 1 1
1 NA 1 1 1 1
1 1 NA 1 1 1
1 1 1 NA 1 1
1 1 1 1 NA 1
1 1 1 1 1 NA",header=T)
na.omit(data)
data
>[1] a b c d e f
<0 行> (或0-長度的row.names)

補充:R語言移除缺失值 NA.RM

看代碼~

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
> a <- 2:12
> b <- seq(2,23,2)
> c <- c(1:11)^3
> d <- c(5:8, 30:36)
 
> df <- data.frame(a,b,c,d)
> df$a[df$a==8] <- NA
> df$b[df$b==8] <- NA
> df$c[df$c==8] <- NA
> df$d[df$d==8] <- NA
> df$d[df$d==32] <- NA
 
 
> df
    a  b    c  d
1   2  2    1  5
2   3  4   NA  6
3   4  6   27  7
4   5 NA   64 NA
5   6 10  125 30
6   7 12  216 31
7  NA 14  343 NA
8   9 16  512 33
9  10 18  729 34
10 11 20 1000 35
11 12 22 1331 36
 
// 只根據第四列,也就是d 的 NA,移除相應的行
> bad.d <- is.na(df$d)
> bad.d
 [1] FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
> df[!bad.d,]
    a  b    c  d
1   2  2    1  5
2   3  4   NA  6
3   4  6   27  7
5   6 10  125 30
6   7 12  216 31
8   9 16  512 33
9  10 18  729 34
10 11 20 1000 35
11 12 22 1331 36
 
// 根據第二列和第三列的NA 移除相應的行
> df[complete.cases(df[,2:3]),]
    a  b    c  d
1   2  2    1  5
3   4  6   27  7
5   6 10  125 30
6   7 12  216 31
7  NA 14  343 NA
8   9 16  512 33
9  10 18  729 34
10 11 20 1000 35
11 12 22 1331 36
 
// 根據第二列和 第四列的NA,移除相應的行
> df[complete.cases(df[,c(2,4)]),]
    a  b    c  d
1   2  2    1  5
2   3  4   NA  6
3   4  6   27  7
5   6 10  125 30
6   7 12  216 31
8   9 16  512 33
9  10 18  729 34
10 11 20 1000 35
11 12 22 1331 36
 
// 根據所有列的NA,移除相應的行
> df[complete.cases(df),]
    a  b    c  d
1   2  2    1  5
3   4  6   27  7
5   6 10  125 30
6   7 12  216 31
8   9 16  512 33
9  10 18  729 34
10 11 20 1000 35
11 12 22 1331 36
>
// 這個效果跟上面的df[complete.cases(df),] 相同
> na.omit(df)
    a  b    c  d
1   2  2    1  5
3   4  6   27  7
5   6 10  125 30
6   7 12  216 31
8   9 16  512 33
9  10 18  729 34
10 11 20 1000 35
11 12 22 1331 36
 
// 計算某一列的平均值, 移除NA值
> mean(df$d, na.rm=TRUE)

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

原文鏈接:https://blog.csdn.net/SThranduil/article/details/71710283

延伸 · 閱讀

精彩推薦
  • R語言R語言實現支持向量機SVM應用案例

    R語言實現支持向量機SVM應用案例

    本文主要介紹了R語言實現支持向量機SVM應用案例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    一天_pika5222022-01-18
  • R語言R語言中qplot()函數的用法說明

    R語言中qplot()函數的用法說明

    這篇文章主要介紹了R語言中qplot()函數的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    Jack_丁明12752022-01-05
  • R語言R語言中的vector(向量),array(數組)使用總結

    R語言中的vector(向量),array(數組)使用總結

    這篇文章主要介紹了R語言中的vector(向量),array(數組)使用總結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要...

    A葉子葉來5772021-11-14
  • R語言R語言讀取xls與xlsx格式文件過程

    R語言讀取xls與xlsx格式文件過程

    這篇文章主要為大家介紹了使用R語言讀取xls與xlsx格式文件的過程步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪...

    Kanny廣小隸11982022-01-20
  • R語言R語言gsub替換字符工具的具體使用

    R語言gsub替換字符工具的具體使用

    這篇文章主要介紹了R語言gsub替換字符工具的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友...

    lztttao10372021-12-24
  • R語言R語言常量知識點總結

    R語言常量知識點總結

    在本篇文章里小編給大家整理了一篇關于R語言常量知識點總結內容,有興趣的朋友們可以學習分享下。...

    R語言教程網12102021-12-29
  • R語言基于R/RStudio中安裝包“無法與服務器建立連接”的解決方案

    基于R/RStudio中安裝包“無法與服務器建立連接”的解決方案

    這篇文章主要介紹了基于R/RStudio中安裝包“無法與服務器建立連接”的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    truffle52815052022-01-05
  • R語言如何用R語言繪制散點圖

    如何用R語言繪制散點圖

    這篇文章主要介紹了如何用R語言繪制散點圖,幫助大家更好的理解和學習使用R語言,感興趣的朋友可以了解下...

    菜鳥教程13002021-12-23
主站蜘蛛池模板: 精品国产品香蕉在线观看 | 亚洲大片在线观看 | 日本大学jalapsiki | 亚洲va久久久久 | 国产成人精品一区 | 日韩免费视频播放 | 无遮18禁在线永久免费观看挡 | 二区三区不卡不卡视频 | 国产外围 | 亚洲天堂视频在线播放 | 天天干夜夜玩 | 久久99亚洲热最新地址获取 | 国产一区二区在线观看视频 | 日本一区二区三区久久 | 极品美女aⅴ高清在线观看 极品ts赵恩静和直男激战啪啪 | 国产精品怡红院永久免费 | 香蕉eeww99国产在线观看 | 久久成人国产精品一区二区 | 男人插曲女人身体 | 小柔的性放荡羞辱日记 | 国产精品久久久久jk制服 | 性欧美高清理论片 | 免费亚洲成人 | 亚洲一级特黄 | 好姑娘在线观看完整版免费 | 免费看片aⅴ免费大片 | 99re免费在线视频 | 四虎1515hhh co m| japanese厕所撒尿| 亚洲国产情侣偷自在线二页 | 亚洲精品国产在线观看 | 欧美日韩国产一区二区三区伦 | 精品99在线观看 | 高清毛片一区二区三区 | 欧美一区二区三区免费看 | 亚洲成人一区在线 | 国产极品精频在线观看 | 深夜福利影院 | 久久免费看少妇高潮A片2012 | 日韩精品一区二区三区免费视频 | 帅老头恋帅老头同性tv |