根据R中的因子标准化数字变量

时间:2015-12-04 16:35:10

标签: r normalization

我试图根据第二个变量(因子)对变量(使用最小值和最大值)进行标准化。

使用jobForm = JobForm(request.POST) jobForm.is_valid() jobForm.cleaned_data 数据框作为示例,它会更清晰。

这将diamonds变量标准化为0-1区间:

carat

但我想根据di <- diamonds di$caratn <- (di$carat-min(di$carat))/(max(di$carat)-min(di$carat)) 变量(这是一个因素)进行规范化。也就是说,获取给定clarity的所有carat值并归一化0-1。

结果是clarity SI2的最高carat值为1,其他澄清值相同。

1 个答案:

答案 0 :(得分:1)

以下是使用ave()

的解决方案
di <- within(di,caratn <- ave(carat,clarity,FUN=function(x) (x-min(x))/diff(range(x))))