Criando uma função

Olá, preciso de ajuda , é possível colocar o código todo abaixo em uma função ? Eu preciso repeti-lo 15 vezes. a unica coisa que muda é o main_topic ==( que vai de 1 a 15), e o titulo do gráfico que também vai de 1 a 15. o restante nada muda.

meu objetivo é gerar 15 gráficos

docs_in_topic_dfm = dfm_subset(dfm_corpusEAD, main_topic ==2)

topic_features = topfeatures(docs_in_topic_dfm, n=8)

topic_features=tibble(word = names(topic_features),
freq = unname(topic_features) )

grafico_topico = topic_features %>%
mutate(word = fct_reorder(word,freq))

ggplot(grafico_topico) +
aes(x = word, fill = word, weight = freq) +
geom_bar() +
scale_fill_brewer(palette = “Dark2”)+
coord_flip() +
theme_bw()+
geom_label(aes(x = word, y = freq/2, label = word)) +
coord_flip()+
labs(title= “Tópico 2”,x= “”,y="")+
theme(legend.position = “none”)

mais uma pergunta seria possível gerar todos os gráficos de uma vez só? mesmo que eles ficassem bem pequenos

Tem um banquinho de dados pra ajudar no teste do código?

Uma primeira tentativa, antes de filtrar por main_topic == x seria apenas adicionar a layer

+ facet_wrap(~main_topic) no gráfico.

O facet_wrap() promete construir o mesmo gráfico para cada categoria da variável main_topic, dê uma olhada no doc https://ggplot2.tidyverse.org/reference/facet_wrap.html

Não sei como enviar o banquinho de dados por aqui , poderia enviar para seu email ?

fiz isso não deu certo, olhe

docs_in_topic_dfm = dfm_subset(dfm_corpusEAD,main_topic)

topic_features = topfeatures(docs_in_topic_dfm, n=8)

topic_features=tibble(word = names(topic_features),
freq = unname(topic_features) )

grafico_topico = topic_features %>%
mutate(word = fct_reorder(word,freq))

ggplot(grafico_topico) +
aes(x = word, fill = word, weight = freq) +
geom_bar() +
scale_fill_brewer(palette = “Dark2”)+
coord_flip() +
theme_bw()+
geom_label(aes(x = word, y = freq/2, label = word)) +
coord_flip()+
labs(title= “Tópico 15”,x= “”,y="")+
theme(legend.position = “none”)+
facet_wrap(~main_topic)

Apareceu este erro

Coordinate system already present. Adding new coordinate system, which will replace the existing one.
Erro: At least one layer must contain all faceting variables: main_topic.

  • Plot is missing main_topic
  • Layer 1 is missing main_topic
  • Layer 2 is missing main_topic
    Run rlang::last_error() to see where the error occurred.