Мы можем использовать pmin/pmax
для получения минимума / максимума, когда один или оба входных аргумента являются вектором длины больше 1 (если оба имеют длину больше 1, предполагается, что длина одинакова)
df %>%
mutate(earliest=pmin(organe,as.Date("1938-12-1")))
# A tibble: 4 x 3
# locationID organe earliest
# <int> <date> <date>
#1 1 1940-04-01 1938-12-01
#2 2 1938-07-01 1938-07-01
#3 3 1938-07-01 1938-07-01
#4 4 1938-07-01 1938-07-01
Или применить min
после rowwise
df %>%
rowwise %>%
mutate(earliest=min(organe, as.Date("1938-12-1")))
Обратите внимание, что min
возвращает одно значение в качестве вывода, т.е.
min(5:1, 3)
#[1] 1
min(5:3, 1)
#[1] 1
Для векторизованного минимума используйте pmin
.Согласно ?min
pmax * () и pmin * () принимают один или несколько векторов в качестве аргументов, возвращают их на общую длину и возвращают один вектор, дающий «параллельные» максимумы (или минимумы).) векторов аргументов.