r - 使用 R 中的 for 循环过滤掉数据帧中的零
问题描述
我的全局环境中有一堆数据框,每个数据框都有 5 列,我想过滤掉所有这些数据框中仅在第 4 列和第 5 列中包含零的行。我尝试使用以下代码列出所有数据帧并运行 for 循环:
all_frames <- list(aa,bb,cc,dd,ee,ff,gg,hh,ii,jj)
for (i in all_frames) {
i <- i[apply(i[,-c(1:3)], 1, function(x) !all(x==0)),]
}
不幸的是,这不起作用,任何建议将不胜感激,谢谢!
解决方案
In base R you can subset
using column names or column numbers. E.g.:
subset(mtcars, cyl == 4 & mpg < 25)
subset(mtcars, mtcars[, 2] == 4 & mtcars[, 1] < 25)
Simply replace mtcars with your dataframe and conditions
To process a list of dataframes use lapply
newdfs <- lapply(all_frames, function(x) subset(x, x[, 4] != 0 & x[, 5] != 0))
推荐阅读
- javascript - 运行 javascript 代码时出错(Discord 音乐机器人) - OPUS_ENGINE_MISSING
- unit-testing - 具有自定义 ServeHTTP 实现的 http 处理程序的 golang 单元测试
- python - 如何使用两个损失函数训练模型?
- php - 在 codeigniter 中放置 cron 作业的位置
- session - 在不同域中的两个 servlet 之间共享 http 会话
- python - python Beautifulsoup通过字符串匹配元素等于标签或属性键或属性值
- hive - 在 hive 中使用 collection_list 和 concat_ws 修改查询以获得正确的结果
- html - 将带有 html 标签的文本显示为 html
- javascript - flexslider 无法正确加载
- cloud-foundry - 将服务绑定到 cloudfoundry 中的两个不同应用程序空间