按不同的列用R来排列[0,1]

按不同的列用R来排列[0,1],r,range,normalization,R,Range,Normalization,我试图用[0,1]范围规范化具有不同属性(数字、布尔…)的人员表,我尝试了以下函数: ranging<-function(x){(x-min(x))/(max(x)-min(x))} ranging如果我们使用的是dplyr,mutate\u每个都可以使用ranging函数并应用于数据集的所有列 library(dplyr) df1 %>% mutate_each(funs(ranging)) 数据 df1假设您使用的是一个名为df的data.frame,没有任何

我试图用[0,1]范围规范化具有不同属性(数字、布尔…)的人员表,我尝试了以下函数:

ranging<-function(x){(x-min(x))/(max(x)-min(x))}

ranging如果我们使用的是
dplyr
mutate\u每个
都可以使用
ranging
函数并应用于数据集的所有列

 library(dplyr)
 df1 %>% 
     mutate_each(funs(ranging))
数据
df1假设您使用的是一个名为df的data.frame,没有任何因子变量,下面的代码应该在没有任何特殊包的情况下工作(如@user20650所建议的:

ranging<-function(x){(x-min(x))/(max(x)-min(x))}
dfNorm <- lapply(df, ranging)
ranging您可以对每个列的min和max使用
lappy(df1,min)
lappy(df1,max)
。最好显示一个可复制的示例和预期输出
lappy(df1,ranging)
ranging<-function(x){(x-min(x))/(max(x)-min(x))}
dfNorm <- lapply(df, ranging)
    dfNorm <- lapply(df, function(x) ifelse(is.factor(x), x, ranging(x)))