dplyr:一行和特定值之间的最大值和最小值

dplyr: max and min between a row and a specific value

我正在尝试创建导致给定行和特定值之间的最大值的代码,但我不知道该怎么做。我在这里看到了一些建议,但它们只适用于行的几个值

这是我预期结果的一个简单示例。我想要“开始”和 19:00:00 之间的最大值(我正在使用 hms)

Type | Start    | max_value_between
<chr>| <hms>    |   <hms>
 A   | 19:30:00 |  19:30:00
 B   | 18:45:00 |  19:00:00

提前致谢

您可以使用 pmax:

mydata$max_value_between <- pmax(mydata$Start, '19:00:00')

我们也可以用

library(dplyr)
my_data %>%
   rowwise %>%
   mutate(max_value_between = max(Start, "19:00:00")) %>%
   ungroup
library(tidyverse)
library(hms)

data <- tribble(
  ~Type, ~Start, 
  "A", "19:30:00",
  "B", "18:45:00"
) %>% 
  mutate(Start = hms::as_hms(Start))

data %>% 
  mutate(
    max_value = if_else(Start > as_hms("19:00:00"), Start, as_hms("19:00:00"))
  )


# # A tibble: 2 x 3
#   Type  Start  max_value
#   <chr> <time> <time>   
# 1 A     19:30  19:30    
# 2 B     18:45  19:00