我目前正在开发一个看起来像这样的数据框:
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)