Вы можете использовать dplyr
и pmap
из purrr
.Главное - сначала создать точку останова для всех уникальных комбинаций am
и vs
.
brk_point <- tibble(am = c(0,0,1,1),
vs = c(0,1,0,1),
brk = list(c(-Inf, 14,15,17, Inf),
c(-Inf, 17,19, Inf),
c(-Inf, 19,21, Inf),
c(-Inf, 27.4, Inf)))
foo <- mtcars %>%
tbl_df() %>%
left_join(., brk_point)
foo_cut <- foo %>%
dplyr::mutate(cut_mpg = purrr::pmap(list(.$mpg,.$brk),
cut,
include.lowest = TRUE))
Вы также можете использовать unnest
для его организации.