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

如何在R语言中对数据框指定列(除首列)乘以标量

解决方法

基础R实现

你第一个方法的问题是只提取了第2到200列运算,自然丢失了第一列。可以直接对数据框的指定列赋值,保留所有列:

# 先复制原数据避免修改原表,再对指定列做乘法
df2 <- df
df2[, 2:200] <- df2[, 2:200] * a

也可以用cbind把第一列和运算后的列合并:

df2 <- cbind(df[, 1], df[, 2:200] * a)
# 若需要保留原列名,可手动设置:colnames(df2) <- colnames(df)

tidyverse实现

你之前的代码错误在于混用了mutate_at和across——mutate_at是旧版语法,新版直接用mutate配合across即可:

library(tidyverse)

# 方法1:直接在across中写运算逻辑
df2 <- df %>% mutate(across(2:200, ~ .x * a))

# 方法2:用你定义的scalar函数
scalar <- function(x) x * 0.75
df2 <- df %>% mutate(across(2:200, scalar))

如果列数不固定,还可以通过排除第一列的方式简化代码:

df2 <- df %>% mutate(across(-1, ~ .x * a))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 22:35:40