R使用最大值对数据帧列进行标准化

时间:2015-01-06 00:19:43

标签: r max aggregate normalization apply

R newbie。

我已经看过一些关于创建函数的帖子,这些函数可以根据标准差等来规范化数据。但是我的问题有点不同。

我有一个大型数据框。我想要一个。找到数据集中所有名称的平均值。湾根据最大值标准化平均值。样本数据:

df<- data.frame(name=c("lauren", "max", "lauren", "pat"), value=(1:4))

得到我的意思:

meanValue <-aggregate(value ~name, data=df, mean)
输出应该是:

df<- data.frame(name=c("lauren", "max", "pat"), normalizedMean=c(.5, .5, 1))

但我仍然坚持如何获得最大值并在相应的df数据帧中创建一个新变量。我知道这是一个apply函数,但我怀疑聚合可以在这里结合起来。

2 个答案:

答案 0 :(得分:1)

我认为您发布的最终解决方案并非完全符合标准化值。它应该是c(0,0,1)

df<- data.frame(name=c("lauren", "max", "lauren", "pat"), value=(1:4))

meanValue <-aggregate(value ~name, data=df, mean)

min_val<-min(meanValue$value)
max_val<-max(meanValue$value)
meanValue$normalizedMean<-(meanValue$value-min_val)/(max_val-min_val) #normalizing

meanValue 

答案 1 :(得分:1)

怎么样

df<- data.frame(name=df$name, 
   normalizedMean=meanValue$value/max(meanValue$value))