Мы можем использовать либо case_when
library(dplyr)
df %>%
mutate(Min = case_when(group == 'yes' ~
min(value[group == 'yes'])))
РЕДАКТИРОВАТЬ: на основе комментариев из @IceCreamToucan (если мы оставим TRUE ~ NA_real_
, он автоматически заполнит остальные NA
по умолчанию)
или преобразовать другие значения в NA
с
df %>%
mutate(Min = min(value[group == 'yes']) * NA^(group != 'yes'))
Воспроизводимым, например,
mtcars %>%
mutate(Min = case_when(am ==1 ~ min(cyl[am == 1]), TRUE ~ NA_real_))
или без case_when
mtcars %>%
mutate(Min = min(cyl[am == 1]) * NA^(am != 1))