如何在R语言中基于Dataframe1的WIND_SPEED缩放Dataframe2的对应变量?
在R中基于DataFrame1的风速缩放DataFrame2的风速
首先先还原你提供的两个数据框:
# 创建DataFrame1 df1 <- data.frame( WIND_SPEED = c(4.2, 4.6, 5.2, 5.8), KWH = c(2340, 4245, 2340, 4245) ) # 创建DataFrame2 df2 <- data.frame( WIND_SPEED = c(8.4, 6.8, 5.4, 4.4), KWH = c(9870, 7605, 3645, 1665) )
缩放操作常用的有两种方式,下面分别演示:
1. Min-Max归一化(缩放到[0,1]区间)
这种方法会把数据映射到0到1的范围,核心是用DataFrame1中风速的最小值和最大值作为基准:
# 提取DataFrame1风速的极值 min_ws1 <- min(df1$WIND_SPEED) max_ws1 <- max(df1$WIND_SPEED) # 对DataFrame2的风速做归一化 df2$WIND_SPEED_scaled_minmax <- (df2$WIND_SPEED - min_ws1) / (max_ws1 - min_ws1)
2. Z-Score标准化(缩放到均值为0,标准差为1)
这种方法会让缩放后的数据均值为0,标准差为1,用DataFrame1中风速的均值和标准差作为基准:
# 提取DataFrame1风速的均值和标准差 mean_ws1 <- mean(df1$WIND_SPEED) sd_ws1 <- sd(df1$WIND_SPEED) # 对DataFrame2的风速做标准化 df2$WIND_SPEED_scaled_zscore <- (df2$WIND_SPEED - mean_ws1) / sd_ws1
执行完上述代码后,df2会新增两个列,分别对应两种缩放后的风速结果。你可以根据实际需求选择合适的缩放方式:如果需要固定区间的结果,选Min-Max归一化;如果数据近似正态分布,或者需要消除量纲影响,选Z-Score标准化。
内容的提问来源于stack exchange,提问作者Seniker96
相关产品推荐
相关产品推荐

