有没有一种方法可以根据每行的最大值(最好在dplyr中)对数据帧的许多行进行规范化?
在iris
我想找到最大的每一行的列Sepal.length,Sepal.width,Petal.length和Petal.width。然后,我想将每个值除以该最大值以得到0到1的范围。我希望能够提供一个范围来查找最大值的列,最好不必按名称调用它们。
输出目标:
> iris
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
5.1 3.5 1.4 0.2 setosa
> iris.normalized
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 3.5/5.1 1.4/5.1 0.2/5.1 setosa
我尝试使用该max
功能无济于事。我很高兴有任何帮助。
使用base R
,用计算每行的最大值pmax
,然后除以感兴趣的列以进行缩放
iris[1:4] <- iris[1:4]/do.call(pmax, iris[1:4])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句