R - dplyr - mutate_if multiple conditions
问题 I want to mutate a column based on multiple conditions. For example, for each column where the max is 5 and the column name contains "xy", apply a function. df <- data.frame( xx1 = c(0, 1, 2), xy1 = c(0, 5, 10), xx2 = c(0, 1, 2), xy2 = c(0, 5, 10) ) > df xx1 xy1 xx2 xy2 1 0 0 0 0 2 1 5 1 5 3 2 10 2 10 df2 <- df %>% mutate_if(~max(.)==10, as.character) > str(df2) 'data.frame': 3 obs. of 4 variables: $ xx1: num 0 1 2 $ xy1: chr "0" "5" "10" $ xx2: num 0 1 2 $ xy2: chr "0" "5" "10" #function