我想根据有效值的数量对数据框进行子集化。我想只保留至少有 3 个有效值的行。我试图找到这样的主题(我很确定有一个),但我没有找到。今天的大脑功能非常低下。
> dput(aa)
structure(list(Names = c("A11DS1", "DDSAI2", "ADDA1",
"TT0FGR8", "TRASD1", "DDAWT0", "YYRRP1", "GFSAX5", "123US2", "FXCH1",
"A3KN83", "A4D1P6", "A5YKK6", "ASDASC98", "ASDASDG6", "A6NFQ2", "GFDAHQ2",
"A6NHR9", "A6NIH7", "P62308"), `116_1` = c(0, 849990000,
1281200000, 1.198e+09, 68748000, 0, 0, 0, 61641000, 43582000,
19723000, 40042000, 428120000, 152520000, 168380000, 0, 228920000,
792460000, 0, 453570000), `116_2` = c(0, 926040000, 1500800000,
1242700000, 48212000, 0, 47242000, 46062000, 30757000, 53163000,
0, 52400000, 463870000, 99146000, 150810000, 31183000, 0, 1.079e+09,
43208000, 421410000), `116_3` = c(742270000, 734460000, 1377700000,
1390500000, 52647000, 59797000, 0, 0, 0, 39395000, 0, 43433000,
373510000, 143300000, 185970000, 19743000, 0, 931530000, 0, 869800000
), `116_4` = c(0, 553380000, 1478900000, 1368400000, 43087000,
45608000, 0, 0, 56578000, 38108000, 0, 40301000, 419570000, 153200000,
174780000, 0, 0, 1064100000, 0, 643450000)), row.names = c(1L,
3L, 6L, 7L, 8L, 10L, 12L, 13L, 14L, 15L, 16L, 17L, 19L, 20L,
23L, 25L, 28L, 29L, 30L, 33L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
查看提供的要删除的数据行:1L;10-13升;16升、25升、28升、30升。
我们可以用它rowSums 来执行这个任务。假设有效值的意思是不等于 0,你可以这样做 -
aa[rowSums(aa[-1] != 0, na.rm = TRUE) >= 3, ]
# Names 116_1 116_2 116_3 116_4
#3 DDSAI2 849990000 926040000 734460000 553380000
#6 ADDA1 1281200000 1500800000 1377700000 1478900000
#7 TT0FGR8 1198000000 1242700000 1390500000 1368400000
#8 TRASD1 68748000 48212000 52647000 43087000
#14 123US2 61641000 30757000 0 56578000
#15 FXCH1 43582000 53163000 39395000 38108000
#17 A4D1P6 40042000 52400000 43433000 40301000
#19 A5YKK6 428120000 463870000 373510000 419570000
#20 ASDASC98 152520000 99146000 143300000 153200000
#23 ASDASDG6 168380000 150810000 185970000 174780000
#29 A6NHR9 792460000 1079000000 931530000 1064100000
#33 P62308 453570000 421410000 869800000 643450000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |