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

R语言中对向量应用scale()函数后如何获取原始值?

R语言scale()标准化结果还原原始值的方法

R里默认调用scale()做的是Z-score标准化,计算规则是(原始值 - 向量均值) / 向量标准差。还原原始值不需要重新对原数据算统计量,直接取标准化结果自带的两个属性反算就行,结果完全精准:

  • scaled:center:标准化过程中减去的原始向量均值,存在返回结果的属性里
  • scaled:scale:标准化过程中除以的原始向量标准差,存在返回结果的属性里

还原的推导公式很简单:

原始值 = 标准化值 * 对应标准差(scaled:scale) + 对应均值(scaled:center)

实操示例

对应测试代码,完整还原流程如下:

# 原始向量与标准化操作
x <- c(11, 12, 13,24, 25, 16, 17, 18, 19)
scaled <- scale(x)

# 提取标准化时留存的均值、标准差属性
orig_mean <- attr(scaled, "scaled:center")
orig_sd <- attr(scaled, "scaled:scale")

# 反算还原原始值
x_restored <- as.vector(scaled * orig_sd + orig_mean)

# 校验还原结果,运行后返回TRUE即代表和原始值完全一致
all.equal(x, x_restored)

小提示:scale()返回的是带额外属性的矩阵格式结果,如果需要和原始向量格式完全一致,用as.vector()转成普通向量即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 03:21:45