You need to enable JavaScript to run this app. R语言中如何用TRUE索引提取table函数统计结果的真值对应数值
优惠活动
大模型
产品
解决方案
定价
更多

R语言中如何用TRUE索引提取table函数统计结果的真值对应数值

解决方法

错误原因说明

你之前的写法不符合R的索引规则:

  • 当你用table(mtcars$cyl == 6)[TRUE]传入逻辑值作为单中括号索引时,R会自动循环补齐逻辑索引长度,长度为1的TRUE会被补齐为和table结果等长的c(TRUE, TRUE),因此会返回所有元素
  • 当你用[[TRUE]]传入逻辑值作为双中括号索引时,R会将逻辑值强制转换为整数(TRUE对应1,FALSE对应0),因此会提取第一个位置的FALSE对应值25

正确实现方案

方案1:通过字符串名称索引table结果

table返回的命名向量的键是字符串类型的"TRUE",直接传入字符串索引即可:

# 保留名称的提取结果
table(mtcars$cyl == 6)["TRUE"]
# 仅提取数值7
as.numeric(table(mtcars$cyl == 6)["TRUE"])

方案2:更简洁的直接计数法

如果你的需求仅为统计mtcars$cyl == 6的TRUE出现次数,完全不需要生成table,直接对逻辑向量求和即可,效率更高:

sum(mtcars$cyl == 6)

运行后直接返回结果7。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 04:54:03