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

如何将dataframe的每一列与其对应标准差相乘(R语言实操)

解决方案

你可以通过以下几种方式实现sim_data每一列与sd_d中对应标准差的相乘:

方法1:使用dplyr(tidyverse风格)

如果习惯tidyverse语法,用across可以简洁完成列操作:

library(dplyr)
scaled_data <- sim_data %>%
  mutate(across(everything(), ~ .x * sd_d[cur_column(), "sd_d"]))

方法2:Base R 简洁写法

利用R的广播特性,转置sd_d为行向量后直接相乘,自动匹配对应列:

scaled_data <- sim_data * t(sd_d)

方法3:Base R 显式循环(可读性强)

如果需要更清晰的逻辑,用sapply遍历列名完成匹配相乘:

scaled_data <- as.data.frame(sapply(names(sim_data), function(col_name) {
  sim_data[[col_name]] * sd_d[col_name, "sd_d"]
}))

说明

三种方法都依赖sd_d的行名与sim_data的列名完全匹配——你的代码中sd_d是通过apply(sim_data,2,sd)生成的,行名会自动对应sim_data的列名,所以无需额外处理匹配逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:50:33