如何在R中的数据帧的选定列中实现规范化公式

如何在R中的数据帧的选定列中实现规范化公式,r,dataframe,normalization,data-manipulation,R,Dataframe,Normalization,Data Manipulation,我正在做一个关于城市数据的个人项目,为了应用k-means聚类,我必须规范化数据。我做了一些挖掘,在这里找到了这个公式: 这是一个可复制的例子 选项(scipen=999) tract\u per\u complaints我不确定sweep是否是这里的正确工具,因为您还没有一个要清除的汇总统计数据。您可以使用apply: apply(tract_per_complaints[ ,c(2:4)], 2, FUN=function(v, p) { v * p / sum(v * p)

我正在做一个关于城市数据的个人项目,为了应用k-means聚类,我必须规范化数据。我做了一些挖掘,在这里找到了这个公式:

这是一个可复制的例子

选项(scipen=999)

tract\u per\u complaints我不确定
sweep
是否是这里的正确工具,因为您还没有一个要清除的汇总统计数据。您可以使用
apply

apply(tract_per_complaints[ ,c(2:4)], 2, 
      FUN=function(v, p) { v * p / sum(v * p)}, 
      p = tract_per_complaints$population_at_this_tract)
输出:

          fire       flood     noise
[1,] 0.04401224 0.001701866 0.1735655
[2,] 0.00000000 0.129443578 0.6317793
[3,] 0.04174017 0.103296596 0.0000000
[4,] 0.13682627 0.017364677 0.0000000
[5,] 0.77742131 0.748193282 0.1946551

另外,您还可以查看
dplyr::mutate_at

这比我使用for循环所做的要好100倍。谢谢你,马吕斯!感谢你的帮助,伙计,我一定会看看mutate_at函数:)您好,我也用dplyr得到了它:
func