Фильтрация фрейма данных по сумме столбцов - PullRequest
0 голосов
/ 24 мая 2018

У меня есть фрейм данных, подобный приведенному ниже (график против данных о происхождении видов).

df=data.frame(plot=c(1, 2, 3, 4, 5, 6, 7, 8, 9), speciesA=c(5, 0, 10, 0, 8, 45, 0, 0, 17), speciesB = c(0, 0, 0, 0, 0, 0, 0, 0, 0), speciesC = c(0.7, 0, 17, 0, 0, 8, 0, 9, 0), species D = c(1, 0, 0, 3, 0, 0, 0, 9, 1))

Мне нужно иметь возможность создать второй фрейм данных (или подмножество этого), который содержит только виды, встречающиеся на более чем 4 участках.Я использовал colSums для подсчета количества вхождений> 0 для каждого столбца, но не могу применить это к фильтрации фрейма данных.
colSums(df != 0) df2 <- df[,which(apply(df,2,colSums)> 4)]

Есть предложения?

1 Ответ

0 голосов
/ 24 мая 2018

Как насчет этого ...

df2 <- df[,colSums(df>0)>4]

df2
  plot speciesA
1    1        5
2    2        0
3    3       10
4    4        0
5    5        8
6    6       45
7    7        0
8    8        0
9    9       17
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...