Duplicar linhas baseado em uma variável

Pessoal,

Tenho um dado que vem no seguinte formato:

df <- data.frame(
  uf = c("Paraíba", "Pernambuco", "Alagoas"),
  cod = c("25", "26,20", "27")
)

Isso significa que Pernambuco por ter dois códigos: 26 e 20.

Como eu posso substituir essa linha de Pernambuco por duas linhas? O resultado fina seria:

df2 <- data.frame(
  uf = c("Paraíba", "Pernambuco", "Pernambuco", "Alagoas"),
  cod = c("25", "26", "20", "27")
)

Consegui com expand e nesting!

data.frame(
  uf = c("Paraíba", "Pernambuco", "Alagoas"),
  cod = c("25", "26,20", "27"), 
  stringsAsFactors = FALSE
) %>%
  group_by(uf) %>%
  tidyr::expand(cod = strsplit(x = cod, split = ",")[[1]], tidyr::nesting(uf)) %>%
  ungroup() %>%
  relocate(cod, .after = uf)
2 curtidas