加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

R语言删除含有NA的列

(2017-11-07 09:45:34)
分类: R语言

我们已经知道,用na.omit()命令可以删除NA。 但是我们希望,只有在某行或某列全是NA时才删除,而na.omit()所做的事是,只要出现NA值,就把所在行全部删除。 例如:

testmatrix <- matrix(nrow=6, ncol=4) testmatrix[2:5,2:3] <- seq(2)

得到testmatrix [,1] [,2] [,3] [,4] [1,] NA NA NA NA [2,] NA 1 1 NA [3,] NA 2 2 NA [4,] NA 1 1 NA [5,] NA 2 2 NA [6,] NA NA NA NA 我们希望得到: testmatrix [,1] [,2] [1,] 1 1 [2,] 2 2 [3,] 1 1 [4,] 2 2 方法是:

tm1<-testmatrix[,-which(apply(testmatrix,2,function(x)all(is.na(x))))] tm2<-tm1[-which(apply(testmatrix,1,function(x)all(is.na(x)))),]

搞定 也可以合并以上2步:

testmatrix[-which(apply(testmatrix,1,function(x)all(is.na(x)))), -which(apply(testmatrix,2,function(x)all(is.na(x))))]

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有