Я пытаюсь создать столбец bin для нижеприведенного data.frame df
, но этот контейнер будет зависеть от столбца key
. lookup
data.frame содержит определения бина для каждого значения ключа.
df <- data.frame(
key = c("foo", "bar"),
value = c(1, 10),
stringsAsFactors = FALSE
)
lookup <- data.frame(
foo = c(0, 5, 10),
bar = c(0, 12, 15),
stringsAsFactors = FALSE
)
bins <- df %>% rowwise() %>%
mutate(bin = as.numeric(cut(value, breaks = lookup %>% select(key) %>% pull, include.lowest = TRUE)))
Функция выше дает желаемый результат:
> bins
key value bin
1 foo 1 1
2 bar 10 1
Тем не менее, data.frame, который я на самом деле использую, намного больше. Функция очень медленная. Есть ли лучший способ ускорить это?