小编Kaa*_*ant的帖子

使用dplyr删除所有列总和为零

我目前正在开发一个看起来像这样的数据框:

Site  Spp1  Spp2  Spp3  LOC  TYPE
S01   2     4     0     A    FLOOD
S02   4     0     0     A    REG
....
S10   0     1     0     B    FLOOD
S11   1     0     0     B    REG
Run Code Online (Sandbox Code Playgroud)

我正在尝试做的是数据框的子集,以便我可以在R中运行一些指标物种分析.

以下代码的工作原理是,我创建了两个数据子集,将它们合并为一个帧,然后删除未使用的因子级别

A.flood <- filter(data, TYPE == "FLOOD", LOC == "A")
B.flood <- filter(data, TYPE == "FLOOD", LOC == "B")
A.B.flood <- rbind(A.flood, B.flood) %>% droplevels.data.frame(A.B.flood, except = c("A", "B"))
Run Code Online (Sandbox Code Playgroud)

我也希望/需要做的是删除Spp总和为零的所有列(在我的真实数据集中有~60).有没有办法用dplyr实现这一点,如果有,是否可以将该代码传递到现有的A.B.flood数据帧代码?

谢谢!

编辑

通过仅选择总计为> 0的列,我设法删除了总和为零的所有列:

A.B.flood.subset <- A.B.flood[, apply(A.B.flood[1:(ncol(A.B.flood))], 2, sum)!=0]
Run Code Online (Sandbox Code Playgroud)

r dplyr

10
推荐指数
2
解决办法
3652
查看次数

标签 统计

dplyr ×1

r ×1