I want to subtract maximum value of each row across multiple columns. For this I'm using pmax
function which works if each column name is passed but I could not figured out how to use :
for passing multiple columns. See my code below:
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.