Я хочу пройтись по большим кадрам данных, подсчитывая в первом столбце, сколько значений> 0, удаляя те строки, которые были подсчитаны .... затем переходя к столбцу 2, считая количество значений> 0, удаляя эти строки и т. Д....
кадр данных
taxonomy A B C
1 cat 0 2 0
2 dog 5 1 0
3 horse 3 0 0
4 mouse 0 0 4
5 frog 0 2 4
6 lion 0 0 2
может быть сгенерирован с помощью
DF1 = structure(list(taxonomy = c("cat", "dog","horse","mouse","frog", "lion"),
A = c(0L, 5L, 3L, 0L, 0L, 0L), D = c(2L, 1L, 0L, 0L, 2L, 0L), C = c(0L, 0L, 0L, 4L, 4L, 2L)),
.Names = c("taxonomy", "A", "B", "C"),
row.names = c(NA, -6L), class = "data.frame")
, и я ожидаю, что результат будет
A B C
count 2 2 2
я написал этот цикл, но он не удаляет строки, поскольку он идет
res <- data.frame(DF1[1,], row.names = c('count'))
for(n in 1:ncol(DF1)) {
res[colnames(DF1)[n]] <- sum(DF1[n])
DF1[!DF1[n]==1]
}
он дает этот неверный результат
A B C
count 2 3 3