首页 文章

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

提问于
浏览
1

有没有办法根据每行的最大值来规范化数据帧的多行,最好是在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 回答

  • 2

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

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

相关问题