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

如何统计R数据框指定列每行TRUE的数量并新增列存储结果

R统计数据框指定列每行TRUE数量的方法

你可以直接用rowSums()函数实现需求,该函数对逻辑值计数时会自动将TRUE识别为1、FALSE识别为0,统计结果直接存入新列即可。

基础R实现

# 示例数据框构造(可跳过,直接替换为你自己的df即可)
df <- data.frame(
  A = rep("###", 3),
  B = c(TRUE, TRUE, FALSE),
  C = c(FALSE, TRUE, FALSE),
  D = c(TRUE, TRUE, FALSE),
  E = c(TRUE, TRUE, FALSE),
  F = rep("+", 3),
  H = rep("###", 3),
  I = rep("Text", 3)
)

# 统计2-5列每行的TRUE数量,存入新列J
df$J <- rowSums(df[, c(2:5)] == TRUE)

如果你的2-5列本身就是逻辑类型,== TRUE可以直接省略,写为rowSums(df[, c(2:5)])即可。该写法仅统计指定范围的列,完全不会涉及其他非目标列,避开了文本列出现"TRUE"被误统计的问题

tidyverse(dplyr)实现

library(dplyr)

df <- df %>%
  mutate(J = rowSums(across(2:5, ~.x == TRUE)))

如果要按列名指定统计范围,把2:5替换为列名向量即可,例如c("B","C","D","E"),避免列顺序变动导致统计错误

运行后输出结果和你给出的期望输出完全一致:

A     B     C     D     E F   H    I J
1 ###  TRUE FALSE  TRUE  TRUE + ### Text 3
2 ###  TRUE  TRUE  TRUE  TRUE + ### Text 4
3 ### FALSE FALSE FALSE FALSE + ### Text 0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 00:39:02