Изменять определенные столбцы в зависимости от положения

Я пытаюсь преобразовать все отрицательные значения в 0 в определенных столбцах фрейма данных. Как мне, например, преобразовать отрицательные значения в ноль в столбцах 3: 5 и 8 в данных mtcars?

mtcars <- mtcars%>%
mutate(across(c(3:5,8), funs(replace(., .<0, 0)))

Большое спасибо за любую помощь!


person Tiptop    schedule 18.09.2020    source источник


Ответы (1)


Этого можно было добиться так:

library(dplyr)

mtcars <- mtcars %>%
  mutate(across(c(3:5,8), ~ if_else(. < 0, 0, .)))
person stefan    schedule 18.09.2020
comment
Вы можете даже уменьшить его, заменив if_else на pmax(., 0). - person WilliamGram; 10.04.2021