R语言移除缺失值 NA.RM
admin
2023-02-16 03:20:05
0
> 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)


相关内容

热门资讯

玩家分享攻略“网易棋牌怎么开挂... 有 亲,根据资深记者爆料网易棋牌是可以开挂的,确实有挂(咨询软件无需打开...
今日重大发现“728可以开挂吗... 您好:728这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游戏中...
玩家攻略科普“川麻圈是不是有挂... 家人们!今天小编来为大家解答川麻圈透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里买很多...
今日重大消息“猫猫学数辅助器?... 家人们!今天小编来为大家解答猫猫学数透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里买很...
终于明白“新超圣牛牛是不是有挂... 终于明白“新超圣牛牛是不是有挂?”(果然有透视挂)您好,新超圣牛牛这个游戏其实有挂的,确实是有挂的,...
【第一消息】“白金岛跑胡子到底... 家人们!今天小编来为大家解答白金岛跑胡子透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里...
【第一财经】“西兵互娱炸/金/... 您好:西兵互娱炸/金/花这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家...
终于明白“江西南昌麻将到底是不... 有 亲,根据资深记者爆料江西南昌麻将是可以开挂的,确实有挂(咨询软件无需...
今日重大通报“鱼虾蟹控制器有挂... 您好:鱼虾蟹控制器这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款...
伊朗强硬回应特朗普威胁:任何侵... 【环球时报驻美国特约记者 杨征 环球时报记者 杜天琦】当地时间29日,美国总统特朗普在佛罗里达州海湖...