Como traduzir esta fórmula de excel no R?

Olá!

Tenho um exemplo da tabela abaixo no excel:

dput:

structure(list(Duration = c(10, 20, 30, 40), Date1 = structure(1:4, .Label = c("01/01/2020 01:00:00", 
"02/01/2020 03:00:00", "03/01/2020 05:00:00", "04/01/2020 04:50:00"
), class = "factor"), Date2 = structure(1:4, .Label = c("01/01/2020 00:30:00", 
"02/01/2020 03:00:00", "03/01/2020 03:30:00", "04/01/2020 04:00:00"
), class = "factor"), number = structure(c(2L, 1L, 1L, 1L), .Label = c("", 
"1"), class = "factor")), class = "data.frame", row.names = c(NA, 
-4L))

image

Basicamente, a célula cinza checa algumas condições.
Ela verifica se todos as datas B2:B4 (verde) e C2:C4 (azul) são anteriores à correspondência C5 da célula cinza. Também checa se a correspondência A5 (laranja) é maior do que zero. Por último, precisa haver o número “1” em pelo menos uma das células anteriores da coluna D. Se todas as condições forem verdadeiras, retorna 1, caso contrário " ".

Como eu poderia implementar esta análise em um data.frame no R?

Obrigado

No R é meio esquisito a sua tabela conter todos os parâmetros para o cálculo, seria mais fácil passar as coisas como argumento mas, é possível fazer isso da seguinte forma:

library(tidyverse)
library(lubridate)

funcao <- function(df) {
  
  # Transforma em data
  df <- df %>% 
    mutate(
      Date1 = dmy_hms(as.character(Date1)),
      Date2 = dmy_hms(as.character(Date2)),
      number = ifelse(is.na(number), 0, number)
    )
  
  if (!any(df$number == 1))
    return("")
  
  c5 <- last(df$Date2)
  
  if (!all(df$Date2[-nrow(df)] < c5))
    return("")
  
  if (!all(df$Date1[-nrow(df)] < c5))
    return("")
  
  
  a5 <- last(df$Duration)
  
  if (!a5 > 0)
    return("")
  
  1
}


funcao(df)

Obrigado, @dfalbel

Tentei passar um exemplo fictício que se aproximasse do que tenho aqui, mas já ajudou!