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

如何在R语言中调整列中数值的取值范围?

在R语言中将数值从[-5,7]映射到[0,13]

方法1:手动实现线性转换

线性映射的核心是把原区间的数值按比例缩放到目标区间,对应公式为:
new_value = (old_value - min_old) * (max_new - min_new)/(max_old - min_old) + min_new

代入你的参数:原区间最小值min_old=-5、最大值max_old=7;目标区间最小值min_new=0、最大值max_new=13。简化后公式可直接写成:
new_val = (x + 5) * 13/12

示例代码:

# 构造示例数据
x <- c(-5, 0, 3, 7, 2)
# 执行转换
x_scaled <- (x + 5) * 13/12
# 查看结果
x_scaled

运行后会得到0, 5.416667, 8.666667, 13, 7.083333,完全符合区间转换要求。

方法2:使用scales包的rescale函数

如果不想手动计算参数,scales包的rescale函数可以直接完成区间映射,更简洁高效:

# 首次使用时先安装包
install.packages("scales")
# 加载包
library(scales)

# 构造示例数据
x <- c(-5, 0, 3, 7, 2)
# 指定原区间和目标区间完成转换
x_scaled <- rescale(x, from = c(-5, 7), to = c(0, 13))
# 查看结果
x_scaled

得到的结果和手动计算完全一致,适合频繁做区间缩放的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 11:54:15