Я пытаюсь получить меньшую из одной переменной в одном наблюдении и фиксированного числа в условном выражении dplyr :: case_when в R. Но оператор min () сравнивается с наименьшим наблюдением всего вектора переменных, т.е. за каждое наблюдение.
library(tidyverse)
data_frame(spc = rep(c("cat", "dog"), 3), z = 1:6) %>%
mutate(
dogsmax3 = case_when(
spc == "dog" ~ min(z, 3),
TRUE ~ 0))
# spc z dogsmax3
# <chr> <int> <dbl>
#1 cat 1 0
#2 dog 2 1
#3 cat 3 0
#4 dog 4 1
#5 cat 5 0
#6 dog 6 1
Пока я ищу заявление, дающее такой результат:
# spc z dogsmax3
# <chr> <int> <dbl>
#1 cat 1 0
#2 dog 2 2
#3 cat 3 0
#4 dog 4 3
#5 cat 5 0
#6 dog 6 3
Итак, есть предложения по улучшению оценки?