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

R语言如何统计逻辑向量中TRUE值的个数

解决方法

直接统计现有结果中TRUE的数量

R中逻辑值TRUE默认对应数值1,FALSE对应数值0,你直接对income2列求和即可得到符合条件的家庭总数,代码如下:

# 假设你已将现有运行结果存储在res变量中
sum(res$income2)

# 也可以直接在原有代码末尾追加计算逻辑
pasta  %>%
  filter(AREA=="2") %>% 
  group_by(HHID) %>% 
  summarise(buy2= sum(PASTA), INCOME) %>% 
  summarise(income2 = INCOME > 20000 & buy2 > 30) %>%
  pull(income2) %>%
  sum()

更简洁的优化代码

你原有代码存在几个可调整的点,可以直接一步得到最终结果,还能消除summarise()的分组提示:

  • 数值比较不需要加双引号,避免将数值转为字符串比较出错
  • 同一个家庭ID(HHID)对应的收入是固定值,summarise时明确取唯一值即可
  • 无需生成逻辑列,直接过滤符合条件的行再统计行数即可
pasta %>%
  filter(AREA == "2") %>% # 先筛选2区的记录
  group_by(HHID) %>% # 按家庭ID分组
  summarise(
    total_pasta = sum(PASTA), # 统计该家庭累计购买意面量
    income = first(INCOME), # 取该家庭的收入值
    .groups = "drop" # 统计完成后取消分组,消除提示
  ) %>%
  filter(income > 20000, total_pasta > 30) %>% # 筛选收入超2万、意面购买超30单位的家庭
  nrow() # 直接返回符合条件的家庭总数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:00:00