概述
> 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.51cto.com/matrix6ro/1791239
最后
以上就是包容短靴为你收集整理的R语言移除缺失值 NA.RM的全部内容,希望文章能够帮你解决R语言移除缺失值 NA.RM所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复