Coluna com caracteres e números misturados

Olá pessoal, tudo bom? Estou fazendo o trabalho de conclusão do R1 e estou usando um csv de reviews do Pitchfork (site de imprensa musical) de 1999 a 2019. O meu problema é que em uma das colunas eu tenho datas por extenso no formato “January 10 2019”. Queria criar coluna só do ano dessas datas e não sei qual função usar Vocês têm alguma dica de qual seria?

Pensei em str_detect, mas aí seriam janeiros, fevereiros, marços de 10 anos, são textos que se repetem muito. Vi uma explicação de um tópico parecido (mas não era o mesmo problema) em que ela fala de tidyr::separate, mas não sei se para esse caso ajudaria. Abaixo fiz um print do view no RStudio para exemplificar melhor.

Captura de Tela 2021-08-10 às 21.46.22

No seu caso eu seguiria pelo caminho de criar a nova coluna reformatando esta data.
Tem um pacote ótimo para manipulação de datas, que é o lubridate, imagino que com ele você consiga extrair apenas o ano da coluna e criar a nova coluna com o mutate.
O Lubridate é ótimo para manipulação de datas, o R por padrão também tem ferramentas para manipular datas, mas acho o lubridate mais claro.
Ele tem esse resumo que pode te ajudar com futuras operações:

Ah, no exemplo eu chamei a biblioteca (lubridate) no início do código e explicitei que estaria usando as funções dela (lubridate::year e lubridate::as_date), não é necessário explicitar as funções dessa forma, mas fica mais claro de onde a função vem e ajuda a não confundir em casos de pacotes que tenham funções de mesmo nome.

Segue o exemplo

library(dplyr)
library(lubridate)

## criando um df exemplo
date <- c("January 11 2020", "January 12 2020", "January 13 2020", "January 14 2020")
date <- as.data.frame(date)

date <- date %>%
  mutate(ano = lubridate::year(lubridate::as_date(date, format = "%B %d %Y")))```

Obrigada Mikael! Vou tentar essa solução!
Bjs

Oi pessoal, bom dia! Tentei as soluções acima, mas acho que como eu ainda não sou familiarizada com o R, me enrolei. Minha base de dados tem quase 21 mil linhas, então não consegui encaixar a solução do vetor com as strings.

Eu consegui adicionar uma coluna chamada “ano_publicação”, mas fiquei sem saber qual dos argumentos do Lubridate eu usaria pra “puxar” direto da coluna de datas (misturadas com caracteres e números, nesse formato “January 9 2019”) para extrair só o ano.

De qualquer forma, a solução anterior e o cheatsheet foram ótimos pra eu me localizar, obrigada demais Mikael04 <3 Quem puder ajudar, agradeço demais <3

pitchfork_dados %>% 
mutate (ano_publicacao = lubridate::date(mdy)) %>% View()
#> Error in pitchfork_dados %>% mutate(ano_publicacao = lubridate::date(mdy)) %>% : não foi possível encontrar a função "%>%"

Opa! Sobre o erro, especificamente, parece que você não carregou os pacotes. Certifique-se que você carregou o tidyverse e outros pacotes usados antes de executar.