R语言缩放-1到1

2022-05-05  本文已影响0人  可能性之兽

谷歌找了半天也没有在R语言这里找到能够直接缩放数据-1到1的函数,我要的不是scale的归一化,就是简单的缩放到-1和1,只好自己按照公式写了一个
将数据归一化到任意区间范围的方法irober的博客-CSDN博客归一化到指定区间
y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin

normfun<-function(data,ymin=-1,ymax=1){
  xmax=max(data)
  xmin=min(data)
  
  y = (ymax-ymin)*(data-xmin)/(xmax-xmin) + ymin

  return(y)
  
}
apply(data_keygene_exp,2,function(x)normfun(x)) |>  as.data.frame() ->norm_data

ps:最后还是找到了,rescale函数就可以,两者结果是一样的
dplyr - how to rescale/normalize data between -1 and 1 in R using groups - Stack Overflow

library(dplyr)
library(scales)
df %>% 
    group_by(Name) %>%
    mutate(Data = rescale(Data, to = c(-1, 1))) %>%
    ungroup
上一篇下一篇

猜你喜欢

热点阅读