R)如何清除“行”空值? [英] R) how to remove "rows" with empty values?
本文介绍了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屋!
查看全文