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

如何在R中按df.is_spam分组批量计算所有w_开头变量的求和值

批量求和解决方案

直接用tidyverse体系下的dplyr语法即可实现批量计算,无需逐个手动操作:

第一步:加载依赖包

library(tidyverse)

第二步:批量计算分组总和

以下代码会直接按df.is_spam的两个取值(FALSE/TRUE),对所有以w_开头的变量分别求和:

sum_result <- spam_df %>%
  # 按是否为垃圾邮件分组
  group_by(df.is_spam) %>%
  # 对所有w_开头的列执行求和操作,na.rm=TRUE可避免缺失值导致结果为NA
  summarise(across(starts_with("w_"), sum, na.rm = TRUE))

运行后得到的sum_result是一个2行631列的tibble:第一行对应df.is_spam=FALSE的所有变量求和结果,第二行对应df.is_spam=TRUE的所有变量求和结果,列名和原数据集的w_开头变量完全对应。

可选:转换为长表格式便于筛选

如果你需要更方便的查找单个变量的求和结果,可以把宽表转为长表格式:

sum_result_long <- sum_result %>%
  pivot_longer(
    cols = starts_with("w_"),
    names_to = "变量名",
    values_to = "求和结果"
  )

比如要获取变量w_在df.is_spam=TRUE时的总和,直接运行:

filter(sum_result_long, df.is_spam == TRUE, 变量名 == "w_")

得到的结果和你手动计算的2266完全一致。

注意:如果你的数据集实际名称是spam.df,把代码里的spam_df替换为spam.df即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:57:05