有没有办法根据每行的最大值来规范化数据帧的多行,最好是在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
功能无济于事。我很高兴得到任何帮助。
答案 0 :(得分:2)
使用base R
,使用pmax
计算每行的最大值,然后除以感兴趣的列进行缩放
iris[1:4] <- iris[1:4]/do.call(pmax, iris[1:4])