You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何筛选满足max()>=1条件的多列?附实操示例

实现方法

你已经拿到了符合筛选条件的布尔索引向量,只需要用这个向量筛选数据框的对应列即可。另外注意:你需求是筛选列最大值≥1的列,当前用colSums()判断列和的逻辑和需求不一致,仅在当前示例中刚好得到了正确的布尔结果,实际使用建议按最大值判断。

1. dplyr 管道流写法(tidyverse风格)

library(dplyr)
# 按列最大值≥1筛选,符合你的需求
result <- y %>% 
  select(where(~ max(.) >= 1))

如果确实要沿用你原来的列和≥1的判断逻辑,写法为:

result <- y %>% 
  select(where(~ sum(.) >= 1))

2. 基础R写法

# 按列最大值≥1筛选
col_keep <- apply(y, 2, function(x) max(x) >= 1)
result <- y[, col_keep]

# 按列和≥1筛选(对应你原来的判断逻辑)
result <- y[, colSums(y) >= 1]

输出结果

以上代码运行后都可以得到你需要的输出:

rv1 rv4 rv5
1   0   0   0
2   1   0   0
3   0   0   3
4   0   0   1
5   0   1   0

内容的提问来源于stack exchange,提问作者cnauber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:15:05