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

如何在R语言中将数据框列归一化至标准差为1

让数据框某一列标准差为1的归一化方法

嗨,这事儿其实很简单!要让你的occurences列标准差等于1,只需要把该列的每个值除以它原本的标准差就行——原理很直白:新数据的标准差 = 原标准差 / 原标准差 = 1。不过要注意处理标准差为0的特殊情况(比如列里所有值都一样),避免除以0的错误。

给你结合你的示例数据框写完整的代码:

# 你的原始数据框
df <- data.frame(name = c("1", "2", "3"), date_article = c("feb. 2021", "jan.2021", "dec. 2020"), occurences = c(3, 0, 1))

# 计算目标列的标准差
col_sd <- sd(df$occurences)

# 生成标准差为1的归一化列,处理标准差为0的特殊情况
df$occurences_norm <- ifelse(col_sd == 0, df$occurences, df$occurences / col_sd)

# 验证结果
sd(df$occurences_norm)

运行这段代码后,你会得到一个新列occurences_norm,它的标准差就是1。你可以用sd(df$occurences_norm)来验证,结果会非常接近1(因为浮点运算的微小误差,可能显示为1.0000000000000002之类的,但本质就是1)。

如果你的列里所有值都相同(标准差为0),代码里的ifelse会让归一化后的列保持原数据,避免报错——你也可以根据自己的需求调整这种情况的处理逻辑,比如替换为0或者其他值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 06:27:33