r - 按列总和过滤数据框
问题描述
我有一个如下图所示的数据框(情节与物种发生数据)。
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)]
有什么建议么?
解决方案
这个怎么样...
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
推荐阅读
- python - 如何在 Big Sur 上使用 pip 在 pypy 上安装 numpy?
- python - 将带有附加列表的字典列表写入 CSV - Python
- excel - 通过 PowerQuery 从 Excel 加载 SharePoint Online 列表(带有查找列)数据
- typescript - 用于角度的 lightGallery 图像库组件 - 将浏览器切换到移动屏幕后,关闭和下载按钮图标消失
- aws-sdk - 如何禁用 AWS 开发工具包日志记录
- next.js - 将导出脚本添加到现有的 next.config.js
- azure - Azure Sql DB 还原未显示在 Azure 门户中,但在 SSMS 中还原
- java - 运行着色 Jar 时未加载泽西岛验证
- python - 在不更改 Python 中的语言环境的情况下检测语言环境是使用 12 小时还是 23 小时格式
- html - 如何使此文本更靠近页脚并更靠近页脚的一侧?