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

在R中跨多列批量生成百分得分 无需重复编写代码

R批量处理多列生成百分制得分解决方案

你可以直接使用dplyr提供的across()函数实现批量列处理,无需重复编写相同逻辑,代码如下:

library(dplyr)

df <- df %>% 
  mutate(
    # 遍历第4至第40列执行计算
    across(4:40, ~ (.x / 5) * 100, .names = "percent_{.col}")
  )

参数说明

  • 4:40:指定需要处理的列范围,如果你所有待处理列都是score_开头的,也可以替换为starts_with("score_"),不受列排序变化影响,稳定性更强
  • ~ (.x / 5) * 100:你需要复用的计算逻辑,.x为遍历到的每一列的指代
  • .names = "percent_{.col}":新生成列的命名规则,{.col}会自动替换为原始列名,和你示例中的命名规则完全匹配

处理效果

用你提供的样例数据运行后,输出结果如下:

score_1 score_2 percent_score_1 percent_score_2
1       2       3              40              60
2       3       4              60              80
3       5       1             100              20

如果使用的dplyr版本较低不支持across(),可以使用mutate_at实现相同效果:

df <- df %>% 
  mutate_at(vars(4:40), list(percent = ~ (.x /5)*100))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 18:18:03