Categorize variável contínua com dplyr [duplicate]

Esta pergunta já tem uma resposta aqui:

Categorize variável numérica com mutate 2 respostas

uero criar uma nova variável com 3 categorias arbitrárias com base em dados contínuo

set.seed(123)
df <- data.frame(a = rnorm(100))

Usando a base, eu faria

df$category[df$a < 0.5] <- "low"
df$category[df$a > 0.5 & df$a < 0.6] <- "middle"
df$category[df$a > 0.6] <- "high"

Existe um dplyr, eu achomutate(), solução para isso?

Além disso, existe uma maneira de calcular as categorias em vez de escolhê-las? I.e. deixe R calcular onde devem estar as quebras para as categorias.

EDITA

A resposta está nestefi, no entanto, não envolve rotulagem, o que me confundiu (e pode confundir outras pessoas), portanto, acho que essa pergunta serve a um propósit

questionAnswers(2)

yourAnswerToTheQuestion