Как извлечь столбцы, которые содержат много значений 0 с R? - PullRequest
1 голос
/ 29 мая 2019

У меня есть матрица с большим количеством столбцов (более 817.000) и 40 строк. Я хотел бы извлечь столбцы, которые содержат много 0 (например> 30 или 35, независимо от числа).

Это должно извлечь несколько столбцов, и я выберу один случайным образом, который я буду использовать в качестве ссылки для остальной части матрицы.

Есть идеи?

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

              OTU0001 OTU0004 OTU0014 OTU0016 OTU0017 OTU0027 OTU0029 OTU0030
Sample_10.rare       0       0      85       0       0       0       0       0
Sample_11.rare       0      42     169       0      42     127       0      85
Sample_12.rare       0       0       0       0       0       0       0      42
Sample_13.rare     762     550    2159     127     550       0     677    1397
Sample_14.rare     847     508    2751     169    1397     169     593    1990
Sample_15.rare    1143     593    3725     677    2116     466     212    2286
Sample_16.rare    5630    5291    5291    1270    3852    1185     296    2836

Он должен извлечь 4 столбца, OTU0001 OTU0016 OTU0027 OTU0029, потому что они получили 3 нуля в каждом. И если это возможно, я хотел бы извлечь положение извлеченных столбцов.

Ответы [ 2 ]

2 голосов
/ 29 мая 2019

Опция с base R

Filter(function(x) sum(x == 0) > 7, df)
0 голосов
/ 29 мая 2019

Вы можете сделать что-то вроде этого (где 7 - число соответствующих нулей):

library(dplyr)
df <- tibble(Col1 = c(rep(0, 10), rep(1, 10)),
                     Col2 = c(rep(0,5), rep(1, 15)),
                     Col3 = c(rep(0,15), rep(1, 5)))

y <- df %>% 
      select_if(function(col) length(which(col==0)) > 7)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...