R)如何清除“行”空值? [英] R) how to remove "rows" with empty values?

查看:242
本文介绍了R)如何清除“行”空值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个奇怪的数据,其中包含很多空值。

I have a weird data which contain a lot of empty values.

test=read.table("test.csv", sep=",", header=T)
class(test)
[1] "data.frame"
test[1:5]
     GO.0000075 GO.0000077 GO.0000082 GO.0002474 GO.0002478
1       CDC27      FEM1B       CUL2       CTSS      AP2A2
2       FEM1B      PSMA1      PSMA1      ITGAV       CTSS
3        NAE1      PSMA3      PSMA3      PSMA1     DYNLL1
4       PSMA1      PSMB5      PSMB5      PSMA3      ITGAV
5       PSMA3      PSMC1      PSMC1      PSMB5      KIF5A
6       PSMB5      PSMC5      PSMC5      PSMC1     KIFAP3
7       PSMC1      PSMC6      PSMC6      PSMC5      PSMA1
8       PSMC5      PSMD1      PSMD1      PSMC6      PSMA3
9       PSMC6     PSMD12     PSMD12      PSMD1      PSMB5
10      PSMD1     PSMD13     PSMD13     PSMD12      PSMC1
11     PSMD12     PSMD14     PSMD14     PSMD13      PSMC5
12     PSMD13      PSMD4      PSMD4     PSMD14      PSMC6
13     PSMD14      PSME3      PSME3      PSMD4      PSMD1
14      PSMD4     PTPN11                 PSME3     PSMD12
15      PSME3                                      PSMD13
16     PTPN11                                      PSMD14
17                                                  PSMD4
18                                                  PSME3
19                                                       
20                                                       
21                                                       
22                                                       
23                                                       
24                                                       
25                                                       
26                                                       
27                                                       
28                                                       
29                                                       
30                                                       
31                                                       
32                                                       
33                                                       
34         
nrow(test[1])
[1] 34

## I want to get the number of column with any value: that is,16     
## So, I tried to remove empty columns like this

test2<-test[-which(is.na(test)),]
test2
[1] GO.0000075 GO.0000077 GO.0000082 GO.0002474 GO.0002478 GO.0002479 GO.0006006 GO.0006007   ...
## another way..
test[test==""] <- NA
test
GO.0000075 GO.0000077 GO.0000082 GO.0002474 GO.0002478 GO.0002479 GO.0006006 GO.0006007
1       CDC27      FEM1B       CUL2       CTSS      AP2A2      ITGAV      ALDOA          ALDOA
2       FEM1B      PSMA1      PSMA1      ITGAV       CTSS      PSMA1     ARPP19       ENO2
3        NAE1      PSMA3      PSMA3      PSMA1     DYNLL1      PSMA3       ENO2        GPI
4       PSMA1      PSMB5      PSMB5      PSMA3      ITGAV      PSMB5       GOT1        HK2
5       PSMA3      PSMC1      PSMC1      PSMB5      KIF5A      PSMC1       GOT2       IGF1
6       PSMB5      PSMC5      PSMC5      PSMC1     KIFAP3      PSMC5        GPI       LDHA
7       PSMC1      PSMC6      PSMC6      PSMC5      PSMA1      PSMC6        HK2       PFKP
8       PSMC5      PSMD1      PSMD1      PSMC6      PSMA3      PSMD1       IGF1      PGAM1
9       PSMC6     PSMD12     PSMD12      PSMD1      PSMB5     PSMD12       LDHA       TPI1
10      PSMD1     PSMD13     PSMD13     PSMD12      PSMC1     PSMD13       MDH1       <NA>
11     PSMD12     PSMD14     PSMD14     PSMD13      PSMC5     PSMD14       PFKP       <NA>
12     PSMD13      PSMD4      PSMD4     PSMD14      PSMC6      PSMD4      PGAM1       <NA>
13     PSMD14      PSME3      PSME3      PSMD4      PSMD1      PSME3     RANBP2       <NA>
14      PSMD4     PTPN11       <NA>      PSME3     PSMD12       <NA>       TPI1       <NA>
15      PSME3       <NA>       <NA>       <NA>     PSMD13       <NA>       <NA>       <NA>
16     PTPN11       <NA>       <NA>       <NA>     PSMD14       <NA>       <NA>       <NA>
17       <NA>       <NA>       <NA>       <NA>      PSMD4       <NA>       <NA>       <NA>
18       <NA>       <NA>       <NA>       <NA>      PSME3       <NA>       <NA>       <NA>
19       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
20       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
21       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
22       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
23       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
24       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
25       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
26       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
27       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
28       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
29       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
30       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
31       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
32       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
33       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
34       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>

test<-na.omit(test)
test
GO.0000075 GO.0000077 GO.0000082 GO.0002474 GO.0002478 GO.0002479 GO.0006006 GO.0006007
1      CDC27      FEM1B       CUL2       CTSS      AP2A2      ITGAV      ALDOA      ALDOA
2      FEM1B      PSMA1      PSMA1      ITGAV       CTSS      PSMA1     ARPP19       ENO2
3       NAE1      PSMA3      PSMA3      PSMA1     DYNLL1      PSMA3       ENO2        GPI
  GO.0006091 GO.0006094 GO.0006096 GO.0006099 GO.0006106 GO.0006119 GO.0006120 GO.0006418
1      ACACB      ALDOA      ALDOA         FH         FH       BDNF       BDNF       KARS
2      ALDOA     ARPP19       ENO2      IDH3A       GOT1     NDUFA9     NDUFA9       NARS
3     ATP5A1       ENO2        GPI       LDLR       GOT2    NDUFAF1    NDUFAF1       PPA1

我也尝试排除Blank并获取具有值的行数(例如,具有complete.cases函数的row(test [1])= 16)。但是只是它给我返回了相同的结果。

I also try to exclude Blank and get the number of rows with value (ex. row(test[1])=16) with complete.cases function. But just it just returned me the same result.

我应该做什么?

推荐答案

尝试类似这样的事情

test[rowSums(is.na(test))!=ncol(test), ] # first set blank to NA

test[rowSums(test=="")!=ncol(test), ]

这篇关于R)如何清除“行”空值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆