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函数,但我怀疑聚合可以在这里结合起来。
答案 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))