0

我想减去多列中每一行的最大值。为此,我使用的pmax函数在传递每个列名时有效,但我不知道如何:用于传递多个列。请参阅下面的代码:

library(tidyverse)
head(iris)
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> 1          5.1         3.5          1.4         0.2  setosa
#> 2          4.9         3.0          1.4         0.2  setosa
#> 3          4.7         3.2          1.3         0.2  setosa
#> 4          4.6         3.1          1.5         0.2  setosa
#> 5          5.0         3.6          1.4         0.2  setosa
#> 6          5.4         3.9          1.7         0.4  setosa
names(iris)
#> [1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"

iris %>%
  mutate(mak = pmax(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width)) %>% 
  head()
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species mak
#> 1          5.1         3.5          1.4         0.2  setosa 5.1
#> 2          4.9         3.0          1.4         0.2  setosa 4.9
#> 3          4.7         3.2          1.3         0.2  setosa 4.7
#> 4          4.6         3.1          1.5         0.2  setosa 4.6
#> 5          5.0         3.6          1.4         0.2  setosa 5.0
#> 6          5.4         3.9          1.7         0.4  setosa 5.4

iris %>%
  mutate(mak = pmax(Sepal.Length:Petal.Width))
#> Warning in Sepal.Length:Petal.Width: numerical expression has 150 elements: only
#> the first used

#> Warning in Sepal.Length:Petal.Width: numerical expression has 150 elements: only
#> the first used
#> Error in `mutate()`:
#> ! Problem while computing `mak = pmax(Sepal.Length:Petal.Width)`.
#> x `mak` must be size 150 or 1, not 5.
4

0 回答 0