Как удалить строки, в которых только указанные c столбцы равны нулю в списке в R? - PullRequest
0 голосов
/ 27 марта 2020

У меня есть следующий фрейм данных DF:

 Sample Chr          Gene                                Exon  Start    End   RC medRC RC.norm medRC.norm lowQual  CN
Sample   1 |LOC102725121   |LOC102725121.E1.chr1.12080.12251  12080  12251    0     0       0          0         CN2
Sample   1 |LOC102725121   |LOC102725121.E2.chr1.12595.12802  12595  12802   19    18      13         13 lowQual CN2
Sample   1 |LOC102725121   |LOC102725121.E3.chr1.13163.13658  13163  13658 1345  1062     918        918         CN2
Sample   1       |WASH7P         |WASH7P.E1.chr1.14620.15015  14620  15015  856   631     584        584 lowQual CN2
Sample   1       |WASH7P         |WASH7P.E2.chr1.15795.15914  15795  15914    7     7       5          9 lowQual CN1
Sample   1       |WASH7P         |WASH7P.E3.chr1.16743.17098  16743  17098  218   171     149        149 lowQual CN2
Sample   1       |WASH7P         |WASH7P.E4.chr1.17247.18121  17247  18121  460   358     314        314 lowQual CN2
Sample   1       |WASH7P         |WASH7P.E5.chr1.18216.18411  18216  18411    6     4       4          3 lowQual CN2
Sample   1       |WASH7P         |WASH7P.E6.chr1.18963.19169  18963  19169   21    12      14         12 lowQual CN2
Sample   1       |WASH7P         |WASH7P.E7.chr1.24260.24532  24260  24532    0     0       0          0         CN2
Sample   1       |WASH7P         |WASH7P.E8.chr1.24655.24855  24655  24855    2     0       1          0         CN2
Sample   1            NA              NA.E1.chr1.30313.30542  30313  30542    1     0       1          0 lowQual CN2
Sample   1      |FAM138F        |FAM138F.E1.chr1.35120.35492  35120  35492    0     0       0          0         CN2
Sample   1      |FAM138F        |FAM138F.E2.chr1.35565.35779  35565  35779    0     0       0          0         CN2
Sample   1            NA              NA.E2.chr1.65509.65726  65509  65726   14     5      10          4 lowQual CN2
Sample   1            NA              NA.E3.chr1.65776.65972  65776  65972   84    40      57         57 lowQual CN2
Sample   1        |OR4F5          |OR4F5.E1.chr1.69028.69391  69028  69391   72    48      49         48 lowQual CN2
Sample   1        |OR4F5          |OR4F5.E2.chr1.69432.69630  69432  69630  217   176     148        148 lowQual CN2
Sample   1        |OR4F5          |OR4F5.E3.chr1.69677.69961  69677  69961   76    47      52         44 lowQual CN2
Sample   1            NA            NA.E4.chr1.120817.120937 120817 120937    4     2       3          2 lowQual CN2
Sample   1            NA            NA.E5.chr1.129075.129255 129075 129255   66    25      45         29 lowQual CN2
Sample   1    |LOC729737    |LOC729737.E1.chr1.135267.135629 135267 135629   21    18      14         13 lowQual CN2
Sample   1    |LOC729737    |LOC729737.E2.chr1.135915.136035 135915 136035   22    12      15         12 lowQual CN2
Sample   1    |LOC729737    |LOC729737.E3.chr1.137436.138062 137436 138062  233   165     159        159 lowQual CN2
Sample   1    |LOC729737    |LOC729737.E4.chr1.138126.138246 138126 138246   30    26      20         20 lowQual CN2
Sample   1    |LOC729737    |LOC729737.E5.chr1.138324.138444 138324 138444   63    48      43         43 lowQual CN2
Sample   1    |LOC729737    |LOC729737.E6.chr1.138488.139800 138488 139800 1394   973     951        895 lowQual CN2
Sample   1            NA            NA.E6.chr1.228399.228603 228399 228603    3     3       2          3 lowQual CN2
Sample   1            NA            NA.E7.chr1.228681.228801 228681 228801    0     0       0          0         CN2
Sample   1            NA            NA.E8.chr1.267138.267258 267138 267258   17     7      12          6 lowQual CN2
Sample   1            NA            NA.E9.chr1.320927.321232 320927 321232    0     0       0          0         CN2
Sample   1 |LOC100132062 |LOC100132062.E1.chr1.324262.325646 324262 325646    4    83       3         91 lowQual CN0
Sample   1 |LOC100132062 |LOC100132062.E2.chr1.325690.325810 325690 325810    0     0       0          0         CN2
Sample   1 |LOC100132062 |LOC100132062.E3.chr1.325888.326008 325888 326008    0     0       0          0         CN2
Sample   1 |LOC100132062 |LOC100132062.E4.chr1.326072.326698 326072 326698    0     0       0          0         CN2

Я хочу удалить строки, в которых столбцы RC, medRC, RC.norm и medRC.norm все вместе показывают 0 Как мне этого добиться? И как бы вы применили команды к списку из нескольких фреймов данных, как показано выше?

Надеюсь, вы мне поможете! Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 27 марта 2020

Попробуйте использовать dplyr

library(dplyr)
df <- filter(df, (RC!=0 & medRC!=0 & RC.norm!=0 & medRC.norm!=0))

Надеюсь, вы найдете это полезным

0 голосов
/ 27 марта 2020

Предположим, ваш фрейм данных DF

DF <- DF[DF$RC + DF$medRC + DF$RC.norm + DF$medRC.norm != 0,]

Редактировать

Для списка фрейма данных

# dummy data
listDF <- list(DF1 = data.frame(RC=c(0,1,2,3),
            medRC=c(0,3,4,0),
            RC.norm=c(0,3,3,3),
            medRC.norm=c(0,3,3,3)),
          DF2 = data.frame(RC=c(2,0,1,2,3),
            medRC=c(4,0,3,4,0),
            RC.norm=c(1,0,3,3,3),
            medRC.norm=c(0,0,3,3,3)))


filteredDF <- lapply(listDF, 
                     function(DF) DF[DF$RC + DF$medRC + DF$RC.norm + DF$medRC.norm != 0,])

filteredDF 

# $DF1
#   RC medRC RC.norm medRC.norm
# 2  1     3       3          3
# 3  2     4       3          3
# 4  3     0       3          3

# $DF2
#   RC medRC RC.norm medRC.norm
# 1  2     4       1          0
# 3  1     3       3          3
# 4  2     4       3          3
# 5  3     0       3          3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...