查找每行的最大值并标准化为此值

时间:2018-01-28 14:53:37

标签: r

有没有办法根据每行的最大值来规范化数据帧的多行,最好是在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功能无济于事。我很高兴得到任何帮助。

1 个答案:

答案 0 :(得分:2)

使用base R,使用pmax计算每行的最大值,然后除以感兴趣的列进行缩放

iris[1:4] <-  iris[1:4]/do.call(pmax, iris[1:4])