谷歌找了半天也没有在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
网友评论