【发布时间】:2015-03-03 14:53:17
【问题描述】:
R 新手。
我看过一些关于创建函数以根据标准偏差等对数据进行标准化的帖子。但我的问题有点不同。
我有一个大数据框。我想要一个。找到数据集中所有名称的平均值。湾。根据最大值对平均值进行归一化。样本数据:
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 数据帧中创建一个新变量。我知道这是一个应用函数,但我怀疑聚合可以在这里组合。
【问题讨论】:
-
如果您要使用随机值,您应该使用
set.seed()使您的示例可重现。此外,您应该为样本输入提供所需的输出。 -
你不能只除以你的 meanValue 的 max() 吗? meanValue$value/max(meanValue$value) 可能是你想要的。
-
在第二行代码之后,执行
meanValue$normalizedMean <- meanValue$value / max(meanValue$value)。你是这个意思吗? -
“规范化”这个词迫切需要一个定义。大多数统计学家会认为这意味着“转换”或“缩放”到平均值为 0 和标准差为 1。当你的一半数据(具有单个元素的组)没有答案时,你怎么能指望任何人提供答案?标准差。
-
@RamNarasimhan 这正是我所需要的。比我想象的要简单!
标签: r max aggregate normalization apply