Qual a tarefa?

É preciso fazer:

  1. A junção da base de dados;
  2. Algumas análises de consistência pra saber se está tudo indo bem com os questionários.
  3. Mostrar as variáveis do logframe

Algumas questões para perguntar pro grupo

Pacotes e Diretório

library(tidyverse)
library(readxl)
library(writexl)
library(loadinstall)
packages <- c("ggplot2",  "dplyr",  "ggthemes", "data.table", "thematic", "readr", "stringr", "tidyr", "readxl", "ggthemes", "stringdist", "fuzzyjoin", "stringi")
invisible(lapply(packages, dynamic_require))
library(dplyr) 



principal <- read_excel("ultimo.xlsx")
principal$date<-date(principal$`Data e horário de início da entrevista`)
principal <- principal %>% filter(date > as.Date("2025-07-21"))

p2 <- principal %>%  filter(!`_validation_status` %in% c("Not Approved", "On Hold"))
p2$index<-p2$`_index`


p2 <- p2 %>%
  mutate(`Grupo amostral` = case_when(
    grepl("Controle", `Grupo amostral`) ~ "Controle",
    grepl("Spillover", `Grupo amostral`) ~ "Spillover",
    grepl("Tratamento", `Grupo amostral`) ~ "Tratamento",
    TRUE ~ as.character(`Grupo amostral`)  # Mantém outros valores inalterados
  ))

p2 <- p2 %>% select(where(~!all(is.na(.x))))


#há 4 questionários a mais 
#+1 em Campinas
p2 <- p2[p2$`Nome do RESPONDENTE` != "Lázaro de Lima Pereira", ]
# + 1 de Patos 
p2 <- p2[p2$`Nome do RESPONDENTE` != "Francisca Paula da Costa", ]

#tem 2 que são NA no grupo amostral 

invalidos <- p2 %>% filter(is.na(`Grupo amostral`))

p2 <- p2 %>% filter(!is.na(`Grupo amostral`))


# Gilmar de Sousa santos tá como controle, mas é spillover 
# Maria Antônia de Oliveira tá como controle, mas é spillover 

table(p2$`Grupo amostral`)
## 
##   Controle  Spillover Tratamento 
##        366         66        264
p2 <- p2 %>%
  mutate(`Grupo amostral` = case_when(
    `Nome do RESPONSÁVEL pela propriedade` == "Gilmar de Sousa santos" ~ "Spillover",
    `Nome do RESPONSÁVEL pela propriedade` == "Maria Antônia de Oliveira" ~ "Spillover",
    TRUE ~ `Grupo amostral`
  ))



table(p2$`Grupo amostral`)
## 
##   Controle  Spillover Tratamento 
##        364         68        264
# Alterar ambos os registros de uma vez
p2$`Unidade da Federação (Estado)`[p2$index %in% c(706, 563)] <- "Pernambuco (PE)"

O arquivo que sai do Kobo

table(p2$`Grupo amostral`)
## 
##   Controle  Spillover Tratamento 
##        364         68        264
Controle (não beneficiário) Spillover (transbordamento)   Tratamento (beneficiário)                          368                          66                         266 
library(ggplot2)
library(dplyr)
library(tidyr)

# Criando os dados com os novos nomes e ordem
dados <- data.frame(
  Momento = factor(c("Esperado", "Esperado", "Esperado", "Efetivo", "Efetivo", "Efetivo"),
                   levels = c("Esperado", "Efetivo")),  # Definindo a ordem dos fatores
  Categoria = c("Controle", "Spillover", "Tratamento", "Controle", "Spillover", "Tratamento"),
  Valor = c(364, 68, 264, 364, 68, 264)
)

# Calculando totais por momento
totais <- dados %>%
  group_by(Momento) %>%
  summarize(Total = sum(Valor))

# Criando o gráfico
p <- ggplot(dados, aes(x = Momento, y = Valor, fill = Categoria)) +
  geom_bar(stat = "identity", position = "stack") +
  geom_text(aes(label = Valor),
            position = position_stack(vjust = 0.5),
            color = "white", size = 3.5) +
  geom_text(data = totais, 
            aes(x = Momento, y = Total, label = Total),
            inherit.aes = FALSE,
            vjust = -0.5, size = 3.5) +
  scale_fill_manual(values = c("Controle" = "#1f77b4", 
                             "Tratamento" = "#ff7f0e", 
                             "Spillover" = "#2ca02c")) +
  labs(title = "",
       x = "",
       y = "",
       fill = "") +
  theme_minimal() +
  theme(
    legend.position = "bottom",
    legend.title.align = 0.5,
    axis.text.x = element_text(hjust = 0.5, size = 10),
    plot.title = element_text(hjust = 0.5, face = "bold"),
    axis.title.y = element_text(margin = margin(r = 10))
  )
## Warning: The `legend.title.align` argument of `theme()` is deprecated as of ggplot2
## 3.5.0.
## ℹ Please use theme(legend.title = element_text(hjust)) instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
# Salvando o gráfico
ggsave("panoramama.png", plot = p, width = 8, height = 6, dpi = 300)
print(p)

Quando?

quantos <- p2 %>% count(date) %>% rename(observacoes = n) 

plot1 <- ggplot(quantos, aes(x = date, y = observacoes)) +
  geom_line(color = "black", linewidth = 1) +
  geom_point(color = "darkorange", size = 2) +
  geom_text(
    aes(label = observacoes),
    vjust = -1,
    color = "black",
    size = 4
  ) +
  labs(
    title = "Quando os questionários foram respondidos?",
    x = "",
    y = "Número de Lares"
  ) +
  theme_minimal() +
  expand_limits(y = max(quantos$observacoes) * 1.1) +
  scale_x_date(
    date_breaks = "2 day",  
    date_labels = "%d-%m"  
  ) +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5))

ggsave(filename = "quando.png",plot = plot1, width = 10,height = 6,dpi = 300, bg = "white"  )

plot1

# Calculando valores acumulados
quantos_cumulative <- quantos %>% 
  arrange(date) %>% 
  mutate(observacoes_acumuladas = cumsum(observacoes))

# Criando o gráfico acumulado
plot_cumulative <- ggplot(quantos_cumulative, aes(x = date, y = observacoes_acumuladas)) +
  geom_line(color = "black", linewidth = 1) +
  geom_point(color = "darkorange", size = 2) +
  geom_text(
    aes(label = observacoes_acumuladas),
    vjust = -1,
    color = "black",
    size = 4
  ) +
  labs(
    title = "Acumulado de questionários respondidos",
    x = "",
    y = "Acumulado de Lares"
  ) +
  theme_minimal() +
  expand_limits(
    y = max(quantos_cumulative$observacoes_acumuladas) * 1.1,  # Expande eixo y
    x = c(min(quantos_cumulative$date) - 1, max(quantos_cumulative$date) + 1)  # Expande eixo x
  ) +  scale_x_date(
    date_breaks = "3 day",  
    date_labels = "%d-%m"  
  ) +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5))

# Salvando o gráfico
ggsave(filename = "cumulative.png", plot = plot_cumulative, width = 10, height = 6, dpi = 300, bg = "white")
plot_cumulative

O georreferenciamento é bom?

Onde caem os pontos do georreferenciamento?

O que diz o questionário?

table(p2$`Unidade da Federação (Estado)`)
## 
##      Bahia (BA) Pernambuco (PE)      Piauí (PI) 
##             122             210             364

Por agora, dia 06 de agosto, a gente tem 122 na Bahia, 12 de Pernambuco e 334 no Piuaí. Ou seja, são 468 questionários válidos. 43 deles (43 + 468 = 511) tem status ‘not approved’ ou ‘on hold’, e um deles tem data de aplicação anterior a 21 de julho.

# Criar tabela de frequência com porcentagens
dados_estados <- as.data.frame(table(p2$`Unidade da Federação (Estado)`))
names(dados_estados) <- c("Estado", "Observacoes")

# Calcular porcentagens
dados_estados <- dados_estados %>%
  mutate(Porcentagem = round(Observacoes/sum(Observacoes)*100, 0)) %>%
  arrange(-Observacoes)

# Criar rótulos combinados (Número + Porcentagem)
dados_estados <- dados_estados %>%
  mutate(Rotulo = paste0(Observacoes, " (", Porcentagem, "%)"))

plot2 <- ggplot(dados_estados, aes(x = reorder(Estado, -Observacoes), y = Observacoes)) +
  geom_bar(stat = "identity", fill = "darkred") +
  geom_text(
    aes(label = Rotulo),  # Usa o rótulo combinado
    vjust = -0.5, 
    size = 5
  ) +
  labs(
    title = "Lares entrevistados",
    x = "",
    y = "",
    caption = paste("Total:", sum(dados_estados$Observacoes), "lares")
  ) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(
      angle = 0,
      hjust = 0.5,
      size = 14
    ),
    plot.title = element_text(size = 16, hjust = 0.5),
    plot.caption = element_text(size = 12, margin = margin(t = 10))
  ) +
  ylim(0, max(dados_estados$Observacoes) * 1.2)  # Aumentei para 1.2 para caber os novos rótulos

ggsave(filename = "estados.png", plot = plot2, width = 10, height = 6, dpi = 300, bg = "white")

plot2

Aí vamos ver se o gerreferenciamento bate com esses dados.

p2$erro_geo <- as.numeric(p2$`_Geolocalização_precision`)
plot_distribuicao <- ggplot(p2, aes(x = erro_geo)) +
  geom_density(fill = "lightblue", alpha = 0.5, color = "blue") +
  labs(
    title = "",
    x = "Precisão de Geolocalização (metros)",
    y = "Densidade"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 16, hjust = 0.5),
    axis.title = element_text(size = 12),
    axis.text = element_text(size = 10)
  )

# Visualizar o gráfico
print(plot_distribuicao)

# Salvar o gráfico
ggsave(filename = "distribuicao_precisao.png", plot = plot_distribuicao, 
       width = 10, height = 6, dpi = 300, bg = "white")
# Carregar bibliotecas necessárias
library(dplyr)
library(leaflet)
library(htmlwidgets)

# Preparar os dados - filtrar coordenadas válidas
dados_mapa <- p2 %>%
  filter(!is.na(`_Geolocalização_latitude`) & 
         !is.na(`_Geolocalização_longitude`)) %>%
  mutate(
    lat = as.numeric(`_Geolocalização_latitude`),
    lng = as.numeric(`_Geolocalização_longitude`),
    estado = `Unidade da Federação (Estado)`, 
    index = index
  )

# Verificar se há dados após o filtro
if(nrow(dados_mapa) == 0) {
  stop("Não há coordenadas válidas na base de dados")
}

# Criar paleta de cores para os estados
# Usando uma paleta qualitativa do RColorBrewer
estados_unicos <- unique(dados_mapa$estado)
cores_estados <- colorFactor(
  palette = "Set1",  # Paleta com cores distintas
  domain = estados_unicos
)

# Criar o mapa
mapa_estados <- leaflet(dados_mapa) %>%
  addTiles() %>%  # Adiciona o mapa base
  addCircleMarkers(
    lng = ~lng,
    lat = ~lat,
    color = ~cores_estados(estado),  # Cor por estado
    popup = ~paste("<b>Index:</b>", index),
    radius = 6,
    stroke = FALSE,
    fillOpacity = 0.8
  ) %>%
  addLegend(
    pal = cores_estados,          # Usa a paleta de cores
    values = ~estado,             # Valores para a legenda
    title = "",            # Título da legenda
    position = "bottomright"      # Posição da legenda
  ) %>%
  addScaleBar() %>%               # Adiciona barra de escala
  addControl("", position = "topright")  # Título do mapa

# Salvar o mapa como HTML
saveWidget(mapa_estados, "mapa_por_estado.html")

# Visualizar o mapa (opcional)
mapa_estados
print(p2[p2$index==563 | p2$index==706, c("index", "_submitted_by")])
## # A tibble: 2 × 2
##   index `_submitted_by`
##   <dbl> <chr>          
## 1   563 igoornobree    
## 2   706 josealex18

Até aqui, parece tudo OK.

Vamos ver se a cidade dada pela coordenada bate certinho com a cidade indicada no formulário.

library(geobr)
library(sf)
library(dplyr)
library(purrr)
library(stringi)
library(stringr)

# Função para padronizar nomes
padronizar_nomes <- function(x) {
  x %>% 
    toupper() %>%
    stri_trans_general("Latin-ASCII") %>%
    str_squish()
}

# 1. Preparar os dados
dados_verificar <- p2 %>%
  select(
    index,
    municipio_ba = `Município (BA)`,
    municipio_pe = `Município (PE)`,
    municipio_pi = `Município (PI)`,
    lat = `_Geolocalização_latitude`,
    lon = `_Geolocalização_longitude`
  ) %>%
  filter(!is.na(lat) & !is.na(lon)) %>%
  st_as_sf(coords = c("lon", "lat"), crs = 4326) %>%
  st_transform(crs = 4674)

# 2. Baixar shapes dos municípios
shapes_municipios <- map_dfr(c( "BA", "PE", "PI"), ~{
  read_municipality(code_muni = .x, year = 2020) %>%
    mutate(uf = .x) %>%
    select(code_muni, name_muni, uf) %>%
    mutate(name_muni_pad = padronizar_nomes(name_muni))
})

# 3. Verificar município de cada ponto
resultados <- st_join(
  dados_verificar,
  shapes_municipios %>% st_transform(crs = st_crs(dados_verificar)),
  join = st_within
)

# 4. Identificar discrepâncias (versão corrigida)
discrepancias <- resultados %>%
  # Extrair coordenadas antes de remover a geometria
  mutate(
    lon_original = st_coordinates(.)[,1],
    lat_original = st_coordinates(.)[,2]
  ) %>%
  st_drop_geometry() %>%
  mutate(
    municipio_declarado = case_when(
      uf == "BA" ~ padronizar_nomes(municipio_ba),
      uf == "PE" ~ padronizar_nomes(municipio_pe),
      uf == "PI" ~ padronizar_nomes(municipio_pi)
    ),
    discrepante = municipio_declarado != name_muni_pad
  ) %>%
  filter(discrepante | is.na(uf)) %>%
  select(
    index,
    uf,
    municipio_declarado,
    municipio_georref = name_muni,
    code_muni,
    lon_original,
    lat_original
  )
discrepancias2<-discrepancias %>% filter(municipio_declarado != "CURRAL NOVO")

print(discrepancias2)
## # A tibble: 16 × 7
##    index uf    municipio_declarado municipio_georref     code_muni lon_original
##    <dbl> <chr> <chr>               <chr>                     <dbl>        <dbl>
##  1   114 PI    SOCORRO DO PIAUI    Paes Landim             2207306        -42.2
##  2   123 PI    SOCORRO DO PIAUI    Santo Inácio Do Piauí   2209500        -41.9
##  3   124 PI    CAMPINAS DO PIAUI   Floresta Do Piauí       2203859        -41.7
##  4   160 BA    CANSANCAO           Queimadas               2925808        -39.6
##  5   313 PI    BELA VISTA DO PIAUI Nova Santa Rita         2207959        -41.9
##  6   426 PI    BELA VISTA DO PIAUI Nova Santa Rita         2207959        -41.9
##  7   427 PI    BELA VISTA DO PIAUI Conceição Do Canindé    2202802        -41.5
##  8   447 PI    BELA VISTA DO PIAUI Conceição Do Canindé    2202802        -41.5
##  9   536 PI    BETANIA DO PIAUI    Paulistana              2207801        -40.8
## 10   566 PE    SANTA CRUZ          Santa Filomena          2612554        -40.5
## 11   582 PE    SANTA FILOMENA      Bodocó                  2602001        -40.1
## 12   594 PE    SANTA CRUZ          Parnamirim              2610400        -40.2
## 13   615 PE    GRANITO             Serrita                 2614006        -39.6
## 14   616 PE    GRANITO             Moreilândia             2614303        -39.6
## 15   643 PE    ARARIPINA           Trindade                2615607        -40.3
## 16   663 PE    EXU                 Bodocó                  2602001        -40.0
## # ℹ 1 more variable: lat_original <dbl>

Das 8 discrepâncias em relação à geolocalização:

Vocês podem achar que vale a pena falar com todos os 8 questionários. Eu acho que o mais importante é verificar o que ocorreu com o index=123.

Vou olhar essas discrepâncias e juntar com a informação de quem fez o questionário.

discrepancias2<- discrepancias2 %>% left_join( p2 %>% select(index, `_submitted_by`), by = "index" )
discrepancias3 <- discrepancias2 %>% select(`_submitted_by`, everything())
print(discrepancias3)
## # A tibble: 16 × 8
##    `_submitted_by`  index uf    municipio_declarado municipio_georref  code_muni
##    <chr>            <dbl> <chr> <chr>               <chr>                  <dbl>
##  1 leudiane_mariano   114 PI    SOCORRO DO PIAUI    Paes Landim          2207306
##  2 lucaslima88        123 PI    SOCORRO DO PIAUI    Santo Inácio Do P…   2209500
##  3 lucaslima88        124 PI    CAMPINAS DO PIAUI   Floresta Do Piauí    2203859
##  4 martim_affonso     160 BA    CANSANCAO           Queimadas            2925808
##  5 isadoraribeiro96   313 PI    BELA VISTA DO PIAUI Nova Santa Rita      2207959
##  6 anderson_brito     426 PI    BELA VISTA DO PIAUI Nova Santa Rita      2207959
##  7 anderson_brito     427 PI    BELA VISTA DO PIAUI Conceição Do Cani…   2202802
##  8 anderson_brito     447 PI    BELA VISTA DO PIAUI Conceição Do Cani…   2202802
##  9 anaclaudia1        536 PI    BETANIA DO PIAUI    Paulistana           2207801
## 10 igoornobree        566 PE    SANTA CRUZ          Santa Filomena       2612554
## 11 weiderloureto      582 PE    SANTA FILOMENA      Bodocó               2602001
## 12 josealex18         594 PE    SANTA CRUZ          Parnamirim           2610400
## 13 weiderloureto      615 PE    GRANITO             Serrita              2614006
## 14 weiderloureto      616 PE    GRANITO             Moreilândia          2614303
## 15 renatabenicio      643 PE    ARARIPINA           Trindade             2615607
## 16 weiderloureto      663 PE    EXU                 Bodocó               2602001
## # ℹ 2 more variables: lon_original <dbl>, lat_original <dbl>

Colocando essas informações no Word.

library(officer)
## 
## Attaching package: 'officer'
## The following object is masked from 'package:readxl':
## 
##     read_xlsx
library(dplyr)

# 1. Preparar os dados
tabela_word <- discrepancias3 %>%
  select(`_submitted_by`, index, municipio_declarado, municipio_georref) %>%
  arrange(`_submitted_by`, index) %>%
  rename(
    "Responsável" = `_submitted_by`,
    "ID" = index,
    "Declarado" = municipio_declarado,
    "Georreferenciado" = municipio_georref
  )

# 2. Criar documento Word
doc <- read_docx() %>% 
  
  # Título
  body_add_par("RELATÓRIO DE DISCREPÂNCIAS", style = "heading 1") %>% 
  body_add_par(paste("Gerado em:", format(Sys.Date(), "%d/%m/%Y")), style = "Normal") %>%
  body_add_par("\n", style = "Normal") %>%
  
  # Criar tabela manualmente
  body_add_table(
    value = tabela_word,
    style = "Normal Table",  # Usa estilo pré-definido do Word
    header = TRUE,
    alignment = c("l", "c", "l", "l")  # Alinhamento: esquerda, centro, esquerda, esquerda
  ) %>%
  
  # Rodapé
  body_add_par("\n", style = "Normal") %>%
  body_add_par(paste("Total de registros:", nrow(tabela_word)), style = "Normal")

# 3. Salvar documento
print(doc, target = "discrepancias_simples.docx")

Mapa das discrepâncias

library(dplyr)
library(leaflet)
library(htmlwidgets)

# Criar o mapa com informações completas
mapa_discrepancias <- leaflet(discrepancias3) %>%
  addTiles() %>%  # Mapa base OpenStreetMap
  
  # Adicionar marcadores com informações completas
  addCircleMarkers(
    lng = ~lon_original,
    lat = ~lat_original,
    color = "#3388ff",  # Azul padrão do Leaflet
    radius = 7,
    fillOpacity = 0.8,
    popup = ~paste("<b>Declarado:</b>", municipio_declarado, "<br>",
                   "<b>Georreferenciado:</b>", municipio_georref, "<br>",
                   "<b>Index:</b>", index, "<br>",
                   "<b>Entrevistador:</b>", `_submitted_by`),
    label = ~paste("Declarado:", municipio_declarado, 
                   "| Georreferenciado:", municipio_georref,
                   "| Entrevistador:", `_submitted_by`)
  ) %>%
  
  # Adicionar título
  addControl(
    "<strong>Discrepâncias de Georreferenciamento</strong>",
    position = "topright",
    className = "map-title"  # Classe CSS para estilização opcional
  ) %>%
  
  # Adicionar barra de escala
  addScaleBar(position = "bottomleft")

# Salvar o mapa como HTML
saveWidget(mapa_discrepancias, "mapa_discrepancias.html", 
           title = "Mapa de Discrepâncias de Georreferenciamento")

# Visualizar o mapa
mapa_discrepancias

Outliers nas variáveis e outras verificações

library(ggplot2)
library(dplyr)

# Função para salvar gráficos
salvar_grafico <- function(grafico, nome_arquivo) {
  ggsave(paste0(nome_arquivo, ".png"), 
         plot = grafico, 
         width = 8, 
         height = 6, 
         dpi = 300)
}

# a) Grupo amostral
j1 <- ggplot(p2, aes(x = `Grupo amostral`)) +
  geom_bar(fill = "steelblue") +
  geom_text(stat = 'count', aes(label = after_stat(count)), 
            vjust = -0.5, size = 3.5) +  # Adiciona contagem em cima das barras
  labs(title = "Distribuição do Grupo Amostral",
       x = "",
       y = "Contagem") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5, size = 10))  # Aumenta tamanho dos ticks

# b) Principal meio de transporte
j2 <- ggplot(p2, aes(x = `Principal meio de transporte utilizado para sair da propriedade`)) +
  geom_bar(fill = "darkorange") +
  geom_text(stat = 'count', aes(label = after_stat(count)), 
            vjust = -0.5, size = 3.5) +
  labs(title = "Principal Meio de Transporte",
       x = "",
       y = "Contagem") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5, size = 10))

# c) Estado das estradas
j3 <- ggplot(p2, aes(x = `Estado das estradas que ligam a propriedade a esses lugares:`)) +
  geom_bar(fill = "forestgreen") +
  geom_text(stat = 'count', aes(label = after_stat(count)), 
            vjust = -0.5, size = 3.5) +
  labs(title = "Estado das Estradas",
       x = "",
       y = "Contagem") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5, size = 10))

# Salvar gráficos
#salvar_grafico(j1, "grupo_amostral")
salvar_grafico(j2, "meio_transporte")
salvar_grafico(j3, "estado_estradas")

# Exibir gráficos
#print(j1)
print(j2)

print(j3)

# 1. Converter para número (maneira simples)
p2$tempo_centro <- as.numeric(p2$`Tempo de deslocamento médio (minutos) até o CENTRO URBANO mais próximo`)

# 2. Ver os números básicos
cat("--- Resumo do Tempo de Deslocamento ---\n")
## --- Resumo do Tempo de Deslocamento ---
print(summary(p2$tempo_centro))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00   15.00   20.00   24.76   30.00  180.00
# 3. Identificar valores extremos (simplificado)
media <- mean(p2$tempo_centro, na.rm = TRUE)
desvio <- sd(p2$tempo_centro, na.rm = TRUE)

# Valores muito altos (acima de média + 3 desvios)
extremamente_altos <- p2$tempo_centro > (media + 3*desvio)
cat("\nValores extremamente altos:\n")
## 
## Valores extremamente altos:
print(p2[extremamente_altos, c("index", "_submitted_by", "tempo_centro")])
## # A tibble: 11 × 3
##    index `_submitted_by` tempo_centro
##    <dbl> <chr>                  <dbl>
##  1    56 renatabenicio             90
##  2   134 renatabenicio            120
##  3   189 ismaellandim              90
##  4   265 anaclaudia1              120
##  5   282 ismaellandim             180
##  6   308 anaclaudia1              120
##  7   328 andrefbrandao            120
##  8   397 anaclaudia1              120
##  9   628 jayane_freires           120
## 10   694 ismaellandim             120
## 11   742 renatabenicio            120
# 4. Gráfico básico
boxplot(p2$tempo_centro, 
        main = "Tempo até o Centro Urbano (minutos)",
        ylab = "Minutos",
        col = "lightblue")

ggplot(p2, aes(y = tempo_centro)) +
  geom_boxplot(fill = "lightblue") +
  labs(title = "Tempo até o Centro Urbano (minutos)",
       y = "Minutos") +
  theme_minimal()

ggsave("bx1.png", 
       plot = last_plot(),
       width = 8, height = 6, dpi = 300)
print(p2[p2$tempo_centro > 50, c("tempo_centro", "Principal meio de transporte utilizado para sair da propriedade")])
## # A tibble: 54 × 2
##    tempo_centro Principal meio de transporte utilizado para sair da propriedad…¹
##           <dbl> <chr>                                                           
##  1           90 Motocicleta                                                     
##  2           60 Transporte público                                              
##  3           60 Motocicleta                                                     
##  4           60 Automóvel                                                       
##  5           60 A pé                                                            
##  6           60 A pé                                                            
##  7           60 Transporte público                                              
##  8          120 Motocicleta                                                     
##  9           60 Motocicleta                                                     
## 10           90 Motocicleta                                                     
## # ℹ 44 more rows
## # ℹ abbreviated name:
## #   ¹​`Principal meio de transporte utilizado para sair da propriedade`
dados_grafico <- p2 %>%
  filter(tempo_centro > 50) %>%
  count(`Principal meio de transporte utilizado para sair da propriedade`) %>%
  rename(meio_transporte = `Principal meio de transporte utilizado para sair da propriedade`,
         quantidade = n)

ggplot(dados_grafico, aes(x = meio_transporte, y = quantidade)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  labs(title = "Da amostra que gasta + de 50min até o centro",
       x = "",
       y = "Quantidade de propriedades") +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 0, hjust = 0.5, size = 12),  # Aumentei para size=12
    axis.text.y = element_text(size = 10),  # Também pode ajustar o eixo Y se quiser
    panel.grid.major.x = element_blank(),
    panel.grid.minor.x = element_blank(),
    plot.title = element_text(size = 14)  # Ajuste opcional para o título
  ) +
  geom_text(aes(label = quantidade), vjust = -0.5, size = 3.5)

ggsave("bx3.png", 
       plot = last_plot(),
       width = 8, height = 6, dpi = 300)
library(ggplot2)
library(dplyr)
library(tidyr)

# 1. Filtrar as variáveis de interesse
vars_tempo <- grep("^Tempo de deslocamento médio \\(minutos\\)", names(p2), value = TRUE)

# 2. Função para extrair o destino (versão revisada)
extrair_destino <- function(x) {
  # Padrão que captura apenas texto em maiúsculas (com possíveis espaços, pontos e acentos)
  gsub(".*até (o|a) ([A-ZÀ-Ú\\s\\.]+) .*", "\\2", x)
}

# 3. Verificação dos nomes extraídos
nomes_extraidos <- sapply(vars_tempo, extrair_destino)
print("Nomes extraídos:")
## [1] "Nomes extraídos:"
print(data.frame(Variável_Original = vars_tempo, Nome_Extraído = nomes_extraidos))
##                                                                                                                                                                                                                                                           Variável_Original
## Tempo de deslocamento médio (minutos) até o CENTRO URBANO mais próximo                                                                                                                               Tempo de deslocamento médio (minutos) até o CENTRO URBANO mais próximo
## Tempo de deslocamento médio (minutos) até a ESCOLA PÚBLICA mais próxima                                                                                                                             Tempo de deslocamento médio (minutos) até a ESCOLA PÚBLICA mais próxima
## Tempo de deslocamento médio (minutos) até o SERVIÇO DE SAÚDE mais próximo                                                                                                                         Tempo de deslocamento médio (minutos) até o SERVIÇO DE SAÚDE mais próximo
## Tempo de deslocamento médio (minutos) até a RODOVIA asfaltada/pavimentada mais próxima                                                                                               Tempo de deslocamento médio (minutos) até a RODOVIA asfaltada/pavimentada mais próxima
## Tempo de deslocamento médio (minutos) até o LOCAL DE VENDA DE INSUMOS AGROPECUÁRIOS mais próximo                                                                           Tempo de deslocamento médio (minutos) até o LOCAL DE VENDA DE INSUMOS AGROPECUÁRIOS mais próximo
## Tempo de deslocamento médio (minutos) até a UNIDADE DE ARMAZENAMENTO DE PRODUTOS AGROPECUÁRIOS mais próxima                                                     Tempo de deslocamento médio (minutos) até a UNIDADE DE ARMAZENAMENTO DE PRODUTOS AGROPECUÁRIOS mais próxima
## Tempo de deslocamento médio (minutos) até a UNIDADE. DE BENEFICIAMENTO DE PRODUTOS AGROPECUÁRIOS mais próxima                                                 Tempo de deslocamento médio (minutos) até a UNIDADE. DE BENEFICIAMENTO DE PRODUTOS AGROPECUÁRIOS mais próxima
## Tempo de deslocamento médio (minutos) até o LOCAL DE COMERCIALIZAÇÃO DE PRODUTOS AGROPECUÁRIOS de produtos agropecuários mais próximo Tempo de deslocamento médio (minutos) até o LOCAL DE COMERCIALIZAÇÃO DE PRODUTOS AGROPECUÁRIOS de produtos agropecuários mais próximo
## Tempo de deslocamento médio (minutos) até a INSTITUIÇÃO FINANCEIRA mais próxima                                                                                                             Tempo de deslocamento médio (minutos) até a INSTITUIÇÃO FINANCEIRA mais próxima
## Tempo de deslocamento médio (minutos) até a CONEXÃO DE INTERNET mais próxima                                                                                                                   Tempo de deslocamento médio (minutos) até a CONEXÃO DE INTERNET mais próxima
##                                                                                                                                       Nome_Extraído
## Tempo de deslocamento médio (minutos) até o CENTRO URBANO mais próximo                                                                       CENTRO
## Tempo de deslocamento médio (minutos) até a ESCOLA PÚBLICA mais próxima                                                                      ESCOLA
## Tempo de deslocamento médio (minutos) até o SERVIÇO DE SAÚDE mais próximo                                                                   SERVIÇO
## Tempo de deslocamento médio (minutos) até a RODOVIA asfaltada/pavimentada mais próxima                                                      RODOVIA
## Tempo de deslocamento médio (minutos) até o LOCAL DE VENDA DE INSUMOS AGROPECUÁRIOS mais próximo                                              LOCAL
## Tempo de deslocamento médio (minutos) até a UNIDADE DE ARMAZENAMENTO DE PRODUTOS AGROPECUÁRIOS mais próxima                                 UNIDADE
## Tempo de deslocamento médio (minutos) até a UNIDADE. DE BENEFICIAMENTO DE PRODUTOS AGROPECUÁRIOS mais próxima                              UNIDADE.
## Tempo de deslocamento médio (minutos) até o LOCAL DE COMERCIALIZAÇÃO DE PRODUTOS AGROPECUÁRIOS de produtos agropecuários mais próximo         LOCAL
## Tempo de deslocamento médio (minutos) até a INSTITUIÇÃO FINANCEIRA mais próxima                                                         INSTITUIÇÃO
## Tempo de deslocamento médio (minutos) até a CONEXÃO DE INTERNET mais próxima                                                                CONEXÃO
# 4. Criar gráficos individuais (apenas se os nomes estiverem corretos)
for(var in vars_tempo) {
  titulo <- extrair_destino(var)
  
  cat("\nCriando gráfico para:", var, "->", titulo, "\n")  # Mensagem de debug
  
  p <- p2 %>%
    mutate(tempo = as.numeric(.[[var]])) %>%
    filter(!is.na(tempo), tempo >= 0) %>%
    
    ggplot(aes(y = tempo)) +
    geom_boxplot(fill = "lightblue", color = "darkblue", alpha = 0.7) +
    labs(title = titulo, y = "Tempo (minutos)", x = "") +
    theme_minimal() +
    theme(
      plot.title = element_text(size = 12, face = "bold", hjust = 0.5),
      axis.text.x = element_blank()
    )
  
  print(p)
}
## 
## Criando gráfico para: Tempo de deslocamento médio (minutos) até o CENTRO URBANO mais próximo -> CENTRO

## 
## Criando gráfico para: Tempo de deslocamento médio (minutos) até a ESCOLA PÚBLICA mais próxima -> ESCOLA

## 
## Criando gráfico para: Tempo de deslocamento médio (minutos) até o SERVIÇO DE SAÚDE mais próximo -> SERVIÇO

## 
## Criando gráfico para: Tempo de deslocamento médio (minutos) até a RODOVIA asfaltada/pavimentada mais próxima -> RODOVIA

## 
## Criando gráfico para: Tempo de deslocamento médio (minutos) até o LOCAL DE VENDA DE INSUMOS AGROPECUÁRIOS mais próximo -> LOCAL

## 
## Criando gráfico para: Tempo de deslocamento médio (minutos) até a UNIDADE DE ARMAZENAMENTO DE PRODUTOS AGROPECUÁRIOS mais próxima -> UNIDADE

## 
## Criando gráfico para: Tempo de deslocamento médio (minutos) até a UNIDADE. DE BENEFICIAMENTO DE PRODUTOS AGROPECUÁRIOS mais próxima -> UNIDADE.

## 
## Criando gráfico para: Tempo de deslocamento médio (minutos) até o LOCAL DE COMERCIALIZAÇÃO DE PRODUTOS AGROPECUÁRIOS de produtos agropecuários mais próximo -> LOCAL

## 
## Criando gráfico para: Tempo de deslocamento médio (minutos) até a INSTITUIÇÃO FINANCEIRA mais próxima -> INSTITUIÇÃO

## 
## Criando gráfico para: Tempo de deslocamento médio (minutos) até a CONEXÃO DE INTERNET mais próxima -> CONEXÃO

# 5. Gráfico combinado (se aplicável)
if(length(vars_tempo) > 0) {
  dados_plot <- p2 %>%
    select(all_of(vars_tempo)) %>%
    pivot_longer(everything(), names_to = "variavel", values_to = "tempo") %>%
    mutate(
      tempo = as.numeric(tempo),
      destino = extrair_destino(variavel)
    ) %>%
    filter(!is.na(tempo), tempo >= 0)
  
  ggplot(dados_plot, aes(x = reorder(destino, tempo, median), y = tempo)) +
    geom_boxplot(fill = "lightblue", alpha = 0.7) +
    coord_flip() +
    labs(title = "Tempos de deslocamento", x = "", y = "Minutos") +
    theme_minimal()
} else {
  message("Nenhuma variável válida encontrada!")
}

dados_plot
## # A tibble: 6,608 × 3
##    variavel                                                        tempo destino
##    <chr>                                                           <dbl> <chr>  
##  1 Tempo de deslocamento médio (minutos) até o CENTRO URBANO mais…    10 CENTRO 
##  2 Tempo de deslocamento médio (minutos) até a ESCOLA PÚBLICA mai…    10 ESCOLA 
##  3 Tempo de deslocamento médio (minutos) até o SERVIÇO DE SAÚDE m…    10 SERVIÇO
##  4 Tempo de deslocamento médio (minutos) até a RODOVIA asfaltada/…    10 RODOVIA
##  5 Tempo de deslocamento médio (minutos) até o LOCAL DE VENDA DE …    10 LOCAL  
##  6 Tempo de deslocamento médio (minutos) até a UNIDADE DE ARMAZEN…    10 UNIDADE
##  7 Tempo de deslocamento médio (minutos) até a UNIDADE. DE BENEFI…    10 UNIDAD…
##  8 Tempo de deslocamento médio (minutos) até o LOCAL DE COMERCIAL…    10 LOCAL  
##  9 Tempo de deslocamento médio (minutos) até a INSTITUIÇÃO FINANC…    10 INSTIT…
## 10 Tempo de deslocamento médio (minutos) até a CONEXÃO DE INTERNE…     0 CONEXÃO
## # ℹ 6,598 more rows
dados_plot
## # A tibble: 6,608 × 3
##    variavel                                                        tempo destino
##    <chr>                                                           <dbl> <chr>  
##  1 Tempo de deslocamento médio (minutos) até o CENTRO URBANO mais…    10 CENTRO 
##  2 Tempo de deslocamento médio (minutos) até a ESCOLA PÚBLICA mai…    10 ESCOLA 
##  3 Tempo de deslocamento médio (minutos) até o SERVIÇO DE SAÚDE m…    10 SERVIÇO
##  4 Tempo de deslocamento médio (minutos) até a RODOVIA asfaltada/…    10 RODOVIA
##  5 Tempo de deslocamento médio (minutos) até o LOCAL DE VENDA DE …    10 LOCAL  
##  6 Tempo de deslocamento médio (minutos) até a UNIDADE DE ARMAZEN…    10 UNIDADE
##  7 Tempo de deslocamento médio (minutos) até a UNIDADE. DE BENEFI…    10 UNIDAD…
##  8 Tempo de deslocamento médio (minutos) até o LOCAL DE COMERCIAL…    10 LOCAL  
##  9 Tempo de deslocamento médio (minutos) até a INSTITUIÇÃO FINANC…    10 INSTIT…
## 10 Tempo de deslocamento médio (minutos) até a CONEXÃO DE INTERNE…     0 CONEXÃO
## # ℹ 6,598 more rows
dados_plot <- dados_plot %>%
  mutate(nome = case_when(
    destino == "CENTRO" ~ "Centro Urbano",
    destino == "CONEXÃO" ~ "Conexão de Internet",
    destino == "ESCOLA" ~ "Escola Pública",
    destino == "INSTITUIÇÃO" ~ "Instituição Financeira",
    destino == "RODOVIA" ~ "Rodovia",
    destino == "UNIDADE" ~ "Unidade de Beneficiamento (Agropec)",
    destino == "UNIDADE." ~ "Unidade de Beneficiamento (Agropec)",
    destino == "LOCAL" ~ "Local de Venda (Agropec)",
    destino == "SERVIÇO" ~ "Serviço de Saúde",
    TRUE ~ as.character(destino)  # Mantém o valor original se nenhum caso for atendido
  ))
table(dados_plot$nome)
## 
##                       Centro Urbano                 Conexão de Internet 
##                                 696                                 690 
##                      Escola Pública              Instituição Financeira 
##                                 695                                 696 
##            Local de Venda (Agropec)                             Rodovia 
##                                1389                                 696 
##                    Serviço de Saúde Unidade de Beneficiamento (Agropec) 
##                                 695                                1051
ggplot(dados_plot, aes(x = reorder(nome, tempo, median), y = tempo)) +
    geom_boxplot(fill = "lightblue", alpha = 0.7) +
    coord_flip() +
    labs(title = "Tempos de deslocamento até...", x = "", y = "Minutos") +
    theme_minimal()

ggsave("bx5.png", 
       plot = last_plot(),
       width = 8, height = 6, dpi = 300)

Uma coisa que a gente vai ter que olhar é se controle e tratamento são diferentes…

variaveis_recebimento <- grep("recebimento", names(p2), value = TRUE, ignore.case = TRUE)
p3 <- p2 %>%   select(`Grupo amostral`, all_of(variaveis_recebimento))  

p4 <- p3 %>%
  select(where(~!all(is.na(.))))

variaveis_recebimento2 <- grep("recebimento", names(p4), value = TRUE, ignore.case = TRUE)
library(dplyr)
library(ggplot2)
library(tidyr)

# 1. Selecionar variáveis e recodificar (NAs viram 0)
p4 <- p4 %>% 
  select(`Grupo amostral`, all_of(variaveis_recebimento2)) %>%
  mutate(across(all_of(variaveis_recebimento2), 
                ~ ifelse(. == "Sim", 1, 0) %>% replace_na(0)))

# 2. Calcular proporções por grupo
prop_recebimento <- p4 %>%
  group_by(`Grupo amostral`) %>%
  summarise(across(all_of(variaveis_recebimento2), 
                  ~ mean(., na.rm = TRUE))) %>%
  pivot_longer(cols = -`Grupo amostral`, 
              names_to = "Variavel", 
              values_to = "Proporcao")



p6<- prop_recebimento
library(stringr)
library(dplyr)

# Substituir os textos
p6 <- p6 %>%
  mutate(Variavel = str_replace_all(Variavel, 
                                   "Recebimento de (assistência sobre a|assistência técnica para as|qualquer tipo de assistência técnica)( técnica)?", 
                                   "RAT"))

p6 <- p6 %>%
  mutate(Variavel = str_replace_all(Variavel, 
                                   "julho de 2022 e setembro de 2023", 
                                   "(jul-22;set-23)"))
ggplot(p6, 
       aes(y = reorder(Variavel, Proporcao),  # Mapeia para o eixo y
           x = Proporcao,                     # Mapeia para o eixo x
           fill = `Grupo amostral`)) +
  geom_col(position = position_dodge()) +
  geom_text(aes(label = scales::percent(Proporcao, accuracy = 1)),
            position = position_dodge(width = 0.9),
            hjust = -0.1,                     # Ajuste horizontal para os rótulos
            size = 3) +
  scale_x_continuous(labels = scales::percent, 
                     expand = expansion(mult = c(0, 0.1))) +  # Espaço para os rótulos
  labs(title = "Proporção de Recebimento por Grupo",
       y = "",                               # Remove o rótulo do eixo y
       x = "Proporção de 'Sim'",
       fill = "") +
  theme_minimal() +
  theme(axis.text.y = element_text(hjust = 0),  # Alinha texto à esquerda
        legend.position = "top")

ggsave("bx8.png", 
       plot = last_plot(),
       width = 12, height = 6, dpi = 300)
p11 <- p2 %>%
  select(`Três principais dificuldades`, `Grupo amostral`) %>%
  mutate(
    chuva = ifelse(
      is.na(`Três principais dificuldades`),
      0,
      as.integer(str_detect(tolower(`Três principais dificuldades`), "chuva"))
    )
  )

# Primeiro criamos um resumo dos dados
dados_resumo <- p11 %>%
  group_by(`Grupo amostral`) %>%
  summarise(
    total = n(),
    com_chuva = sum(chuva),
    proporcao = mean(chuva)
  )

# Gráfico de barras da proporção
ggplot(dados_resumo, aes(x = `Grupo amostral`, y = proporcao, fill = `Grupo amostral`)) +
  geom_col() +
  geom_text(aes(label = scales::percent(proporcao, accuracy = 0.1)), 
            vjust = -0.5, size = 4) +
  scale_y_continuous(labels = scales::percent, limits = c(0, 1)) +
  labs(title = "Proporção de menções a 'chuva' como dificuldade",
       x = "",
       y = "Proporção",
       fill = "Grupo") +
  theme_minimal() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 0, hjust = 0.45))

ggsave("bx12.png", 
       plot = last_plot(),
       width = 8, height = 6, dpi = 300)

Logframe

Agora é preciso saber se os dados do logframe existem

Número de agricultores treinados em agricultura de baixo carbono

Jeito de achar isso? Dos que foram tratados, olhar se

nomes<-as.data.frame(names(p2))
variaveis_recebimento <- grep("recebimento", names(p2), value = TRUE, ignore.case = TRUE)

recebimento_var<-as.data.frame(variaveis_recebimento)

table(p2$`Você ou alguém do seu domicílio participou de eventos, reuniões ou fóruns sobre políticas públicas ligadas à agricultura de baixo carbono entre julho de 2022 e setembro de 2023?`)
## 
##      Não Não sabe      Sim 
##       95       15      154
table(p2$`Grupo amostral`)
## 
##   Controle  Spillover Tratamento 
##        364         68        264
table(p2$`Grupo amostral`)
## 
##   Controle  Spillover Tratamento 
##        364         68        264
d12 <- p2 %>%
  count(`Você ou alguém do seu domicílio participou de eventos, reuniões ou fóruns sobre políticas públicas ligadas à agricultura de baixo carbono entre julho de 2022 e setembro de 2023?`,`Grupo amostral`) 

ggplot(p2, aes(x = `Você ou alguém do seu domicílio participou de eventos, reuniões ou fóruns sobre políticas públicas ligadas à agricultura de baixo carbono entre julho de 2022 e setembro de 2023?`,
               fill = `Grupo amostral`)) +
  geom_bar(position = "dodge") +
  labs(title = "Participação em eventos de agricultura de baixo carbono",
       subtitle = "Por grupo amostral (jul/2022-set/2023)",
       x = "",
       y = "Domicílios (#)",
       fill = "") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5),
        legend.position = "bottom") +
  scale_fill_brewer(palette = "Set2") +
  geom_text(aes(label = ..count..), 
            stat = "count", 
            position = position_dodge(width = 0.9),
            vjust = -0.5, 
            size = 3)
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

ggsave("logframe1.png", 
       plot = last_plot(),
       width = 8, height = 6, dpi = 300)
# Carregar bibliotecas necessárias
library(ggplot2)
library(dplyr)
library(scales)
## Warning: package 'scales' was built under R version 4.3.3
## 
## Attaching package: 'scales'
## The following object is masked from 'package:purrr':
## 
##     discard
## The following object is masked from 'package:readr':
## 
##     col_factor
# Filtrar apenas o grupo de tratamento
p2_tratamento <- p2 %>%
  filter(`Grupo amostral` == "Tratamento")

# Calcular totais e percentuais
dados_participacao <- p2_tratamento %>%
  count(`Você ou alguém do seu domicílio participou de eventos, reuniões ou fóruns sobre políticas públicas ligadas à agricultura de baixo carbono entre julho de 2022 e setembro de 2023?`) %>%
  mutate(Percentual = n / sum(n) * 100,
         Rótulo = paste0(n, " (", round(Percentual, 1), "%)"))

# Criar o gráfico
ggplot(dados_participacao, aes(
  x = `Você ou alguém do seu domicílio participou de eventos, reuniões ou fóruns sobre políticas públicas ligadas à agricultura de baixo carbono entre julho de 2022 e setembro de 2023?`,
  y = n,
  fill = `Você ou alguém do seu domicílio participou de eventos, reuniões ou fóruns sobre políticas públicas ligadas à agricultura de baixo carbono entre julho de 2022 e setembro de 2023?`)) +
  geom_col(width = 0.6, alpha = 0.8) +
  geom_text(aes(label = Rótulo), 
            vjust = -0.5, 
            size = 4.5) +
  labs(title = "Participação em eventos de agricultura de baixo carbono",
       subtitle = "Apenas grupo de tratamento",
       x = "",
       y = "Número de domicílios",
       caption = "Fonte: Dados da pesquisa") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5, size = 11),
        legend.position = "none",
        plot.title = element_text(size = 16, hjust = 0.5),
        plot.subtitle = element_text(size = 12, hjust = 0.5),
        panel.grid.major.x = element_blank(),
        panel.grid.minor.y = element_blank()) +
  scale_fill_manual(values = c("Sim" = "#1b7837", "Não" = "#fc8d62")) +
  scale_y_continuous(expand = expansion(mult = c(0, 0.15)), limits = c(0, max(dados_participacao$n) * 1.1))

# Salvar o gráfico
ggsave("participacao_eventos_tratamento.png", width = 9, height = 7, dpi = 300)
# Carregar bibliotecas necessárias
library(ggplot2)
library(dplyr)
library(tidyr)
library(scales)

# Filtrar apenas o grupo de tratamento
p2_tratamento <- p2 %>%
  filter(`Grupo amostral` == "Tratamento")

# Calcular totais e percentuais para cada indicador
dados_indicadores <- p2_tratamento %>%
  summarise(
    Eventos = sum(`Você ou alguém do seu domicílio participou de eventos, reuniões ou fóruns sobre políticas públicas ligadas à agricultura de baixo carbono entre julho de 2022 e setembro de 2023?` == "Sim", na.rm = TRUE),
    Cursos = sum(`Participação em cursos, capacitações ou visitas técnicas sobre ABC` == "Sim", na.rm = TRUE),
    Conhecimento = sum(!is.na(`Conhecimento sobre práticas de ABC`), na.rm = TRUE),
    Total = n()
  ) %>%
  mutate(
    Eventos_perc = Eventos / Total * 100,
    Cursos_perc = Cursos / Total * 100,
    Conhecimento_perc = Conhecimento / Total * 100
  ) %>%
  select(Eventos, Cursos, Conhecimento, Total, Eventos_perc, Cursos_perc, Conhecimento_perc) %>%
  pivot_longer(cols = c(Eventos, Cursos, Conhecimento), 
               names_to = "Indicador", 
               values_to = "Contagem") %>%
  mutate(
    Percentual = case_when(
      Indicador == "Eventos" ~ Eventos_perc,
      Indicador == "Cursos" ~ Cursos_perc,
      Indicador == "Conhecimento" ~ Conhecimento_perc
    ),
    Rótulo = paste0(Contagem, " (", round(Percentual, 1), "%)"),
    Indicador = factor(Indicador, 
                       levels = c("Eventos", "Cursos", "Conhecimento"),
                       labels = c("Participou de eventos\nsobre políticas ABC",
                                  "Participou de cursos/\ncapacitações ABC", 
                                  "Tem conhecimento sobre\npráticas ABC"))
  )

# Criar o gráfico
ggplot(dados_indicadores, aes(x = Indicador, y = Percentual, fill = Indicador)) +
  geom_col(width = 0.7, alpha = 0.8) +
  geom_text(aes(label = Rótulo), 
            vjust = -0.5, 
            size = 4.5) +
  labs(title = "Participação e Conhecimento em Agricultura de Baixo Carbono",
       subtitle = paste("Grupo de Tratamento -", unique(dados_indicadores$Total), "domicílios"),
       x = "",
       y = "Percentual de domicílios (%)",
       caption = "Fonte: Dados da pesquisa") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5, size = 11),
        legend.position = "none",
        plot.title = element_text(size = 16, hjust = 0.5),
        plot.subtitle = element_text(size = 12, hjust = 0.5),
        panel.grid.major.x = element_blank(),
        panel.grid.minor.y = element_blank()) +
  scale_fill_manual(values = c("#1b7837", "#5ab4ac", "#d8b365")) +
  scale_y_continuous(expand = expansion(mult = c(0, 0.15)), 
                     limits = c(0, max(dados_indicadores$Percentual) * 1.1),
                     labels = function(x) paste0(x, "%"))

# Salvar o gráfico
ggsave("participacao_conhecimento_abc_tratamento.png", width = 10, height = 7, dpi = 300)
# Carregar bibliotecas necessárias
library(ggplot2)
library(dplyr)
library(scales)

# Filtrar apenas o grupo de tratamento
p2_tratamento <- p2 %>%
  filter(`Grupo amostral` == "Tratamento")

# Calcular domicílios que atenderam a pelo menos um critério (corrigido)
p2_tratamento <- p2_tratamento %>%
  mutate(
    participacao = case_when(
      `Você ou alguém do seu domicílio participou de eventos, reuniões ou fóruns sobre políticas públicas ligadas à agricultura de baixo carbono entre julho de 2022 e setembro de 2023?` == "Sim" |
        `Participação em cursos, capacitações ou visitas técnicas sobre ABC` == "Sim" |
        !is.na(`Conhecimento sobre práticas de ABC`) ~ "Sim",
      TRUE ~ "Não/NA"
    )
  )

# Calcular totais e percentuais
dados_resumo <- p2_tratamento %>%
  count(participacao) %>%
  mutate(Percentual = n / sum(n) * 100,
         Rótulo = paste0(n, " (", round(Percentual, 1), "%)"))

# Verificar o resultado
print(dados_resumo)
## # A tibble: 2 × 4
##   participacao     n Percentual Rótulo     
##   <chr>        <int>      <dbl> <chr>      
## 1 Não/NA          23       8.71 23 (8.7%)  
## 2 Sim            241      91.3  241 (91.3%)
# Total de domicílios
total_domicilios <- nrow(p2_tratamento)

# Criar o gráfico com 2 categorias
ggplot(dados_resumo, aes(x = participacao, y = Percentual, fill = participacao)) +
  geom_col(width = 0.6, alpha = 0.8) +
  geom_text(aes(label = Rótulo), 
            vjust = -0.5, 
            size = 5) +
  labs(title = "Domicílios que ou participaram de treinamento (ABC) \n ou de capacitação ou conhecem as técnicas",
       subtitle = paste("Grupo de Tratamento -", total_domicilios, "domicílios totais"),
       x = "",
       y = "Percentual de domicílios (%)",
       caption = "Sim para pelo menos um dos critérios (participação, capacitação, conhecimento)") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5, size = 12),
        legend.position = "none",
        plot.title = element_text(size = 16, hjust = 0.5),
        plot.subtitle = element_text(size = 12, hjust = 0.5),
        panel.grid.major.x = element_blank(),
        panel.grid.minor.y = element_blank()) +
  scale_fill_manual(values = c("Não/NA" = "#762a83", "Sim" = "#1b7837")) +
  scale_x_discrete(labels = c("Não/Não sabe", "Sim")) +
  scale_y_continuous(expand = expansion(mult = c(0, 0.15)), 
                     limits = c(0, max(dados_resumo$Percentual) * 1.1),
                     labels = function(x) paste0(x, "%"))

# Salvar o gráfico
ggsave("participacao_abc_2_categorias_corrigido.png", width = 9, height = 7, dpi = 300)
p20<-p2 %>% filter(`Grupo amostral`=="Tratamento")


ggplot(p20, aes(
  x = `Você ou alguém do seu domicílio participou de eventos, reuniões ou fóruns sobre políticas públicas ligadas à agricultura de baixo carbono entre julho de 2022 e setembro de 2023?`,
  fill = factor(`Sua propriedade participou do Projeto como alguma das seguintes unidades?/Sim, como Unidade Demonstrativa (UD) - Usada como exemplo para demonstrar práticas do Projeto`)
)) +
  geom_bar(position = "dodge") +
  labs(
    title = "Participação em eventos de agricultura de baixo carbono - somente tratados",
    subtitle = "Por grupo amostral (jul/2022-set/2023)",
    x = "",
    y = "Domicílios (#)",
    fill = ""
  ) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 0, hjust = 0.5),
    legend.position = "bottom"
  ) +
  scale_fill_manual(
    values = c("0" = "#66c2a5", "1" = "#fc8d62"),  # Cores para 0 e 1
    labels = c("0" = "Unidade Multiplicadora", "1" = "Unidade Demonstrativa (UD)")  # Rótulos personalizados
  ) +
  geom_text(
    aes(label = ..count..),
    stat = "count",
    position = position_dodge(width = 0.9),
    vjust = -0.5,
    size = 3
  )

ggsave("logframe20.png", 
       plot = last_plot(),
       width = 8, height = 6, dpi = 300)

Para garantir que isso é resultado do programa, a gente vai olhar a linha de base.

load("d11.Rda")
abc <- as.data.frame(grep("abc", names(p2), value = TRUE, ignore.case = TRUE))
julho <- as.data.frame(grep("julho", names(p2), value = TRUE, ignore.case = TRUE))
ggplot(p2, aes(x = `Participação em cursos, capacitações ou visitas técnicas sobre ABC`,
               fill = `Grupo amostral`)) +
  geom_bar(position = "dodge") +
  labs(title = "Participação em cursos, capacitações ou visitas técnicas sobre ABC",
       subtitle = "",
       x = "",
       y = "Domicílios (#)",
       fill = "") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5),
        legend.position = "bottom") +
  scale_fill_brewer(palette = "Set2") +
  geom_text(aes(label = ..count..), 
            stat = "count", 
            position = position_dodge(width = 0.9),
            vjust = -0.5, 
            size = 3)

ggsave("logframe2.png", 
       plot = last_plot(),
       width = 8, height = 6, dpi = 300)
ggplot(p2, aes(x = `Recebimento de qualquer tipo de assistência técnica entre julho de 2022 e setembro de 2023`,
               fill = `Grupo amostral`)) +
  geom_bar(position = "dodge") +
  labs(title = "Recebimento de qualquer tipo de assistência técnica",
       subtitle = "julho de 2022 e setembro de 2023",
       x = "",
       y = "Domicílios (#)",
       fill = "") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5),
        legend.position = "bottom") +
  scale_fill_brewer(palette = "Set2") +
  geom_text(aes(label = ..count..), 
            stat = "count", 
            position = position_dodge(width = 0.9),
            vjust = -0.5, 
            size = 3)

ggsave("logframe3.png", 
       plot = last_plot(),
       width = 8, height = 6, dpi = 300)
  • Número de produtores com conhecimento aumentado sobre práticas sustentáveis e agricultura de baixo carbono

  • Número de produtores com maior capacidade de acesso ao crédito rural

  • Número de jovens treinados em agricultura de baixo carbono

ggplot(p2, aes(x = `Algum jovem do domicílio participou de treinamento ou capacitação em práticas de Agricultura de Baixa Emissão de Carbono (ABC) entre julho de 2022 e setembro de 2023?`,
               fill = `Grupo amostral`)) +
  geom_bar(position = "dodge") +
  labs(title = "Algum jovem do domicílio participou de treinamento ou capacitação em práticas de \n Agricultura de Baixa Emissão de Carbono (ABC)?",
       subtitle = "julho de 2022 e setembro de 2023",
       x = "",
       y = "Domicílios (#)",
       fill = "") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5),
        legend.position = "bottom") +
  scale_fill_brewer(palette = "Set2") +
  geom_text(aes(label = ..count..), 
            stat = "count", 
            position = position_dodge(width = 0.9),
            vjust = -0.5, 
            size = 3)

ggsave("logframe4.png", 
       plot = last_plot(),
       width = 8, height = 6, dpi = 300)
#
ggplot(p2, aes(x = `Alguma mulher do domicílio participou de treinamento ou capacitação em práticas de Agricultura de Baixa Emissão de Carbono (ABC) entre julho de 2022 e setembro de 2023?`,
               fill = `Grupo amostral`)) +
  geom_bar(position = "dodge") +
  labs(title = "Alguma mulher do domicílio participou de treinamento ou capacitação \n em práticas de  Agricultura de Baixa Emissão de Carbono (ABC)?",
       subtitle = "julho de 2022 e setembro de 2023",
       x = "",
       y = "Domicílios (#)",
       fill = "") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5),
        legend.position = "bottom") +
  scale_fill_brewer(palette = "Set2") +
  geom_text(aes(label = ..count..), 
            stat = "count", 
            position = position_dodge(width = 0.9),
            vjust = -0.5, 
            size = 3)

ggsave("logframe5.png", 
       plot = last_plot(),
       width = 8, height = 6, dpi = 300)

Quanto o programa aumenta o número de produtores com conhecimento aumentado sobre práticas sustentáveis e agricultura de baixo carbono?

ggplot(p2, aes(x = `Conhecimento sobre Agricultura de Baixa Emissão de Carbono (ABC)`,
               fill = `Grupo amostral`)) +
  geom_bar(position = "dodge") +
  labs(title = "Conhecimento sobre Agricultura de Baixa Emissão de Carbono (ABC)",
       subtitle = "",
       x = "",
       y = "Domicílios (#)",
       fill = "") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5),
        legend.position = "bottom") +
  scale_fill_brewer(palette = "Set2") +
  geom_text(aes(label = ..count..), 
            stat = "count", 
            position = position_dodge(width = 0.9),
            vjust = -0.5, 
            size = 3)

ggsave("logframe13.png", 
       plot = last_plot(),
       width = 8, height = 6, dpi = 300)
# Preparar os dados com percentuais em relação ao total de cada resposta
dados_empilhados <- p2 %>%
  count(`Conhecimento sobre Agricultura de Baixa Emissão de Carbono (ABC)`, `Grupo amostral`) %>%
  group_by(`Conhecimento sobre Agricultura de Baixa Emissão de Carbono (ABC)`) %>%
  mutate(percentual = n / sum(n) * 100,
         label = paste0(n, " (", round(percentual, 1), "%)"))

# Verificar os dados
print(dados_empilhados)
## # A tibble: 6 × 5
## # Groups:   Conhecimento sobre Agricultura de Baixa Emissão de Carbono (ABC)
## #   [2]
##   Conhecimento sobre Agricultura de Ba…¹ `Grupo amostral`     n percentual label
##   <chr>                                  <chr>            <int>      <dbl> <chr>
## 1 Não                                    Controle           326       60.8 326 …
## 2 Não                                    Spillover           56       10.4 56 (…
## 3 Não                                    Tratamento         154       28.7 154 …
## 4 Sim                                    Controle            38       23.8 38 (…
## 5 Sim                                    Spillover           12        7.5 12 (…
## 6 Sim                                    Tratamento         110       68.8 110 …
## # ℹ abbreviated name:
## #   ¹​`Conhecimento sobre Agricultura de Baixa Emissão de Carbono (ABC)`
# Criar o gráfico empilhado
ggplot(dados_empilhados, aes(x = `Conhecimento sobre Agricultura de Baixa Emissão de Carbono (ABC)`,
                             y = n,
                             fill = `Grupo amostral`)) +
  geom_col(position = "stack") +
  geom_text(aes(label = label),
            position = position_stack(vjust = 0.5),
            size = 3.5,
            color = "black") +
  labs(title = "Conhecimento sobre Agricultura de Baixa Emissão de Carbono (ABC)",
       subtitle = "",
       x = "",
       y = "Domicílios (#)",
       fill = "") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5, size = 12),
        legend.position = "bottom",
        plot.title = element_text(size = 16, hjust = 0.5),
        plot.subtitle = element_text(size = 12, hjust = 0.5)) +
  scale_fill_brewer(palette = "Set2") +
  scale_y_continuous(expand = expansion(mult = c(0, 0.1)))

# Salvar o gráfico
ggsave("conhecimento_abc_empilhado_total_resposta.png", 
       width = 9, height = 6, dpi = 300)
# Preparar os dados com percentuais de 100% para cada grupo amostral
dados_100pct <- p2 %>%
  count(`Grupo amostral`, `Conhecimento sobre Agricultura de Baixa Emissão de Carbono (ABC)`) %>%
  group_by(`Grupo amostral`) %>%
  mutate(percentual = n / sum(n) * 100,
         label = paste0(n, " (", round(percentual, 1), "%)"))

# Inverter a ordem dos níveis do fator para trocar as cores
dados_100pct$`Conhecimento sobre Agricultura de Baixa Emissão de Carbono (ABC)` <- factor(
  dados_100pct$`Conhecimento sobre Agricultura de Baixa Emissão de Carbono (ABC)`,
  levels = c("Não", "Sim")  # Invertendo a ordem
)

# Criar o gráfico de barras empilhadas 100%
ggplot(dados_100pct, aes(x = `Grupo amostral`,
                         y = percentual,
                         fill = `Conhecimento sobre Agricultura de Baixa Emissão de Carbono (ABC)`)) +
  geom_col(position = "stack", width = 0.7) +
  geom_text(aes(label = label),
            position = position_stack(vjust = 0.5),
            size = 4,
            color = "black") +
  labs(title = "Conhecimento sobre Agricultura de Baixa Emissão de Carbono (ABC)",
       subtitle = "Distribuição percentual por grupo amostral",
       x = "",
       y = "Percentual (%)",
       fill = "") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5, size = 12),
        legend.position = "bottom",
        plot.title = element_text(size = 16, hjust = 0.5),
        plot.subtitle = element_text(size = 12, hjust = 0.5),
        panel.grid.major.x = element_blank()) +
  scale_fill_brewer(palette = "Set2", direction = -1) +  # direction = -1 inverte a paleta
  scale_y_continuous(labels = function(x) paste0(x, "%"))

# Salvar o gráfico
ggsave("conhecimento_abc_100pct_grupo_set2_invertido.png", 
       width = 9, height = 6, dpi = 300)

Acesso a crédito

ggplot(p2, aes(x = `Empréstimos/financiamentos ativos para desenvolver atividades produtivas`, fill = `Grupo amostral`)) +
  geom_bar(position = "dodge") +
  labs(title = "Empréstimos/financiamentos ativos para desenvolver atividades produtivas",
       subtitle = "",
       x = "",
       y = "Domicílios (#)",
       fill = "") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5),
        legend.position = "bottom") +
  scale_fill_brewer(palette = "Set2") +
  geom_text(aes(label = ..count..), 
            stat = "count", 
            position = position_dodge(width = 0.9),
            vjust = -0.5, 
            size = 3)

ggsave("logframe15.png", 
       plot = last_plot(),
       width = 8, height = 6, dpi = 300)
# Preparar os dados com percentuais de 100% para cada grupo amostral
dados_emprestimos <- p2 %>%
  count(`Grupo amostral`, `Empréstimos/financiamentos ativos para desenvolver atividades produtivas`) %>%
  group_by(`Grupo amostral`) %>%
  mutate(percentual = n / sum(n) * 100,
         label = paste0(n, " (", round(percentual, 1), "%)"))

# Verificar os dados
print(dados_emprestimos)
## # A tibble: 6 × 5
## # Groups:   Grupo amostral [3]
##   `Grupo amostral` Empréstimos/financiamentos ativos pa…¹     n percentual label
##   <chr>            <chr>                                  <int>      <dbl> <chr>
## 1 Controle         Não                                      208       57.1 208 …
## 2 Controle         Sim                                      156       42.9 156 …
## 3 Spillover        Não                                       37       54.4 37 (…
## 4 Spillover        Sim                                       31       45.6 31 (…
## 5 Tratamento       Não                                      132       50   132 …
## 6 Tratamento       Sim                                      132       50   132 …
## # ℹ abbreviated name:
## #   ¹​`Empréstimos/financiamentos ativos para desenvolver atividades produtivas`
# Criar o gráfico de barras empilhadas 100%
ggplot(dados_emprestimos, aes(x = `Grupo amostral`,
                              y = percentual,
                              fill = `Empréstimos/financiamentos ativos para desenvolver atividades produtivas`)) +
  geom_col(position = "stack", width = 0.7) +
  geom_text(aes(label = label),
            position = position_stack(vjust = 0.5),
            size = 4,
            color = "black") +
  labs(title = "Há algum financiamento ativo para desenvolver atividades produtivas?",
       subtitle = "",
       x = "",
       y = "Percentual (%)",
       fill = "") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5, size = 12),
        legend.position = "bottom",
        plot.title = element_text(size = 16, hjust = 0.5),
        plot.subtitle = element_text(size = 12, hjust = 0.5),
        panel.grid.major.x = element_blank()) +
  scale_fill_brewer(palette = "Set2") +
  scale_y_continuous(labels = function(x) paste0(x, "%"))

# Salvar o gráfico
ggsave("emprestimos_financiamentos_100pct_grupo_set2.png", 
       width = 9, height = 6, dpi = 300)
  • Hectares de terra sob manejo sustentável

  • Número de agricultores com melhor acesso ao crédito rural

  • Adicionar renda, pedido do professor Marcelo…

Hectares

# Calcular o percentual de área preservada por grupo
dados_share <- p2 %>%
  mutate(
    # Converter ambas as áreas para numérico
    Area_total_numeric = as.numeric(gsub(",", ".", `Área total da propriedade`)),
    Area_preservacao_numeric = as.numeric(gsub(",", ".", `Área destinada para a preservação ambiental...173`))
  ) %>%
  group_by(`Grupo amostral`) %>%
  summarise(
    Area_Total_Sum = sum(Area_total_numeric, na.rm = TRUE),
    Area_Preservacao_Sum = sum(Area_preservacao_numeric, na.rm = TRUE),
    Share_Preservacao = (Area_Preservacao_Sum / Area_Total_Sum) * 100
  ) %>%
  # Remover grupos com valores infinitos ou NA
  filter(!is.na(Share_Preservacao), is.finite(Share_Preservacao))

# Gráfico de barras com o share da área preservada
ggplot(dados_share, aes(x = `Grupo amostral`, y = Share_Preservacao, fill = `Grupo amostral`)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Proporção da Área Preservada em Relação à Área Total",
       subtitle = "",
       x = "",
       y = "Proporção da Área Preservada (%)",
       fill = "") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5),
        legend.position = "bottom",
        plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5)) +
  scale_fill_brewer(palette = "Set2") +
  geom_text(aes(label = paste0(round(Share_Preservacao, 1), "%")), 
            position = position_dodge(width = 0.9),
            vjust = -0.5, 
            size = 4,
            fontface = "bold") +
  scale_y_continuous(labels = function(x) paste0(x, "%")) +
  # Ajustar limites do eixo y para melhor visualização
  expand_limits(y = max(dados_share$Share_Preservacao) * 1.1)

ggsave("logframe25.png", 
       plot = last_plot(),
       width = 8, height = 6, dpi = 300)

Outras abas

Renda da Linha de Acompanhamento

library(tidyverse)
library(readxl)
library(writexl)
library(loadinstall)
packages <- c("ggplot2",  "dplyr",  "ggthemes", "data.table", "thematic", "readr", "stringr", "tidyr", "readxl", "ggthemes", "stringdist", "fuzzyjoin", "stringi")
invisible(lapply(packages, dynamic_require))
library(dplyr) 



r1 <- read_excel("ultimo.xlsx", sheet = "group_vn12c16")
r2 <- read_excel("ultimo.xlsx", sheet = "group_tz76h99")
r3 <- read_excel("ultimo.xlsx", sheet = "group_bi8xw25")
## New names:
## • `Unidade de área` -> `Unidade de área...4`
## • `Se outra tecnologia, qual?` -> `Se outra tecnologia, qual?...8`
## • `Unidade de área` -> `Unidade de área...12`
## • `Qual a modalidade de contratação/pagamento?` -> `Qual a modalidade de
##   contratação/pagamento?...36`
## • `Se outro local, qual?` -> `Se outro local, qual?...58`
## • `Se outro local, qual?` -> `Se outro local, qual?...66`
## • `Se outra tecnologia, qual?` -> `Se outra tecnologia, qual?...69`
## • `Qual a modalidade de contratação/pagamento?` -> `Qual a modalidade de
##   contratação/pagamento?...70`
## • `Valor gasto com mão-de-obra de fora da família nos últimos 12 meses` ->
##   `Valor gasto com mão-de-obra de fora da família nos últimos 12 meses...71`
## • `Valor gasto com mão-de-obra de fora da família nos últimos 12 meses` ->
##   `Valor gasto com mão-de-obra de fora da família nos últimos 12 meses...86`
principal <- read_excel("ultimo.xlsx")
## New names:
## • `Se outro motivo, qual?` -> `Se outro motivo, qual?...20`
## • `A(s) estrada(s) pavimentada(s) liga(m) sua propriedade a qual(is)
##   lugar(es)?` -> `A(s) estrada(s) pavimentada(s) liga(m) sua propriedade a
##   qual(is) lugar(es)?...50`
## • `Biodigestor` -> `Biodigestor...133`
## • `Unidade de área` -> `Unidade de área...164`
## • `Se outra unidade de área, qual?` -> `Se outra unidade de área, qual?...165`
## • `Área destinada para produção agropecuária` -> `Área destinada para produção
##   agropecuária...167`
## • `Unidade de área` -> `Unidade de área...168`
## • `Se outra unidade de área, qual?` -> `Se outra unidade de área, qual?...169`
## • `Área destinada para a preservação ambiental` -> `Área destinada para a
##   preservação ambiental...173`
## • `Unidade de área` -> `Unidade de área...174`
## • `Se outra unidade de área, qual?` -> `Se outra unidade de área, qual?...175`
## • `Se outra dificuldade, qual?` -> `Se outra dificuldade, qual?...260`
## • `Se outra dificuldade, qual?` -> `Se outra dificuldade, qual?...266`
## • `Se outra dificuldade, qual?` -> `Se outra dificuldade, qual?...272`
## • `Quais técnicas de recuperação de pastagens degradadas foram utilizadas?` ->
##   `Quais técnicas de recuperação de pastagens degradadas foram
##   utilizadas?...294`
## • `Quais técnicas de recuperação de pastagens degradadas foram
##   utilizadas?/Calcário` -> `Quais técnicas de recuperação de pastagens
##   degradadas foram utilizadas?/Calcário...295`
## • `Quais técnicas de recuperação de pastagens degradadas foram
##   utilizadas?/Fertilizantes químicos` -> `Quais técnicas de recuperação de
##   pastagens degradadas foram utilizadas?/Fertilizantes químicos...296`
## • `Quais técnicas de recuperação de pastagens degradadas foram
##   utilizadas?/Outras técnicas` -> `Quais técnicas de recuperação de pastagens
##   degradadas foram utilizadas?/Outras técnicas...297`
## • `Se outra dificuldade, qual?` -> `Se outra dificuldade, qual?...308`
## • `Se outra dificuldade, qual?` -> `Se outra dificuldade, qual?...314`
## • `Se outra dificuldade, qual?` -> `Se outra dificuldade, qual?...321`
## • `Se outra dificuldade, qual?` -> `Se outra dificuldade, qual?...327`
## • `Se outra dificuldade, qual?` -> `Se outra dificuldade, qual?...345`
## • `Se outra dificuldade, qual?` -> `Se outra dificuldade, qual?...351`
## • `Biodigestor` -> `Biodigestor...372`
## • `Espécies de peixe criadas na propriedade entre julho de 2022 e setembro de
##   2023/Curimatã` -> `Espécies de peixe criadas na propriedade entre julho de
##   2022 e setembro de 2023/Curimatã...405`
## • `Espécies de peixe criadas na propriedade entre julho de 2022 e setembro de
##   2023/Tilápia` -> `Espécies de peixe criadas na propriedade entre julho de
##   2022 e setembro de 2023/Tilápia...406`
## • `Espécies de peixe criadas na propriedade entre julho de 2022 e setembro de
##   2023/Tilápia` -> `Espécies de peixe criadas na propriedade entre julho de
##   2022 e setembro de 2023/Tilápia...408`
## • `Espécies de peixe criadas na propriedade entre julho de 2022 e setembro de
##   2023/Curimatã` -> `Espécies de peixe criadas na propriedade entre julho de
##   2022 e setembro de 2023/Curimatã...413`
## • `Se outra espécie, qual?` -> `Se outra espécie, qual?...417`
## • `Valor médio de mil alevinos (R$)` -> `Valor médio de mil alevinos
##   (R$)...454`
## • `Valor médio de mil alevinos (R$)` -> `Valor médio de mil alevinos
##   (R$)...466`
## • `Se outro motivo, qual?` -> `Se outro motivo, qual?...472`
## • `Forma de comercialização dos peixes` -> `Forma de comercialização dos
##   peixes...475`
## • `Forma de comercialização dos peixes/Vivo` -> `Forma de comercialização dos
##   peixes/Vivo...476`
## • `Forma de comercialização dos peixes/Inteiro` -> `Forma de comercialização
##   dos peixes/Inteiro...477`
## • `Forma de comercialização dos peixes/Inteiro eviscerado` -> `Forma de
##   comercialização dos peixes/Inteiro eviscerado...478`
## • `Forma de comercialização dos peixes/Congelado` -> `Forma de comercialização
##   dos peixes/Congelado...479`
## • `Local de comercialização dos peixes` -> `Local de comercialização dos
##   peixes...480`
## • `Local de comercialização dos peixes/No município` -> `Local de
##   comercialização dos peixes/No município...482`
## • `Local de comercialização dos peixes/Em municípios vizinhos` -> `Local de
##   comercialização dos peixes/Em municípios vizinhos...483`
## • `Local de comercialização dos peixes/No estado` -> `Local de comercialização
##   dos peixes/No estado...484`
## • `Local de comercialização dos peixes/Para outros estados` -> `Local de
##   comercialização dos peixes/Para outros estados...485`
## • `Local de comercialização dos peixes/Exportação` -> `Local de comercialização
##   dos peixes/Exportação...486`
## • `Destinação dos peixes comercializados` -> `Destinação dos peixes
##   comercializados...487`
## • `Destinação dos peixes comercializados/Frigoríficos` -> `Destinação dos
##   peixes comercializados/Frigoríficos...488`
## • `Destinação dos peixes comercializados/Peixarias` -> `Destinação dos peixes
##   comercializados/Peixarias...489`
## • `Destinação dos peixes comercializados/Feiras` -> `Destinação dos peixes
##   comercializados/Feiras...490`
## • `Destinação dos peixes comercializados/Supermercados` -> `Destinação dos
##   peixes comercializados/Supermercados...491`
## • `Destinação dos peixes comercializados/Consumidor final` -> `Destinação dos
##   peixes comercializados/Consumidor final...492`
## • `Destinação dos peixes comercializados/OSP` -> `Destinação dos peixes
##   comercializados/OSP...493`
## • `Destinação dos peixes comercializados/Outro destino` -> `Destinação dos
##   peixes comercializados/Outro destino...494`
## • `Se outro destino, qual?` -> `Se outro destino, qual?...495`
## • `Aquisição de equipamentos` -> `Aquisição de equipamentos...514`
## • `Equipamentos adquiridos` -> `Equipamentos adquiridos...515`
## • `Equipamentos adquiridos/Outro equipamento` -> `Equipamentos adquiridos/Outro
##   equipamento...528`
## • `Se outro equipamento, qual?` -> `Se outro equipamento, qual?...529`
## • `Manutenção de equipamentos` -> `Manutenção de equipamentos...531`
## • `Há contratação de mão-de-obra de fora da família?` -> `Há contratação de
##   mão-de-obra de fora da família?...533`
## • `Qual a modalidade de contratação/pagamento?` -> `Qual a modalidade de
##   contratação/pagamento?...534`
## • `Área total explorada com extrativismo` -> `Área total explorada com
##   extrativismo...542`
## • `Unidade de área` -> `Unidade de área...543`
## • `Se outra unidade de área, qual?` -> `Se outra unidade de área, qual?...544`
## • `Aquisição de equipamentos` -> `Aquisição de equipamentos...552`
## • `Equipamentos adquiridos` -> `Equipamentos adquiridos...553`
## • `Equipamentos adquiridos/Outro equipamento` -> `Equipamentos adquiridos/Outro
##   equipamento...562`
## • `Se outro equipamento, qual?` -> `Se outro equipamento, qual?...563`
## • `Manutenção de equipamentos` -> `Manutenção de equipamentos...565`
## • `Há contratação de mão-de-obra de fora da família?` -> `Há contratação de
##   mão-de-obra de fora da família?...576`
## • `Qual a modalidade de contratação/pagamento?` -> `Qual a modalidade de
##   contratação/pagamento?...577`
## • `Área de floresta plantada na propriedade` -> `Área de floresta plantada na
##   propriedade...624`
## • `Unidade de área` -> `Unidade de área...625`
## • `Se outra unidade de área, qual?` -> `Se outra unidade de área, qual?...626`
## • `Se outro motivo, qual?` -> `Se outro motivo, qual?...644`
## • `Nível de satisfação com os serviços de assistência técnica` -> `Nível de
##   satisfação com os serviços de assistência técnica...690`
## • `Se outro motivo, qual?` -> `Se outro motivo, qual?...709`
## • `Se outra fonte, qual?` -> `Se outra fonte, qual?...726`
## • `Se outra atividade, qual?` -> `Se outra atividade, qual?...740`
## • `Se outra atividade, qual?` -> `Se outra atividade, qual?...752`
## • `Se outra fonte, qual?` -> `Se outra fonte, qual?...768`
## • `Se outro destino, qual?` -> `Se outro destino, qual?...771`
## • `Mercados de destino da produção gerada na propriedade` -> `Mercados de
##   destino da produção gerada na propriedade...784`
## • `Mercados de destino da produção gerada na propriedade/Mercados
##   institucionais (PAA, PNAE)` -> `Mercados de destino da produção gerada na
##   propriedade/Mercados institucionais (PAA, PNAE)...785`
## • `Mercados de destino da produção gerada na propriedade/Próprio município` ->
##   `Mercados de destino da produção gerada na propriedade/Próprio
##   município...786`
## • `Mercados de destino da produção gerada na propriedade/Outros municípios no
##   mesmo estado` -> `Mercados de destino da produção gerada na
##   propriedade/Outros municípios no mesmo estado...787`
## • `Mercados de destino da produção gerada na propriedade/Outros estados` ->
##   `Mercados de destino da produção gerada na propriedade/Outros estados...788`
## • `Mercados de destino da produção gerada na propriedade/Exportação` ->
##   `Mercados de destino da produção gerada na propriedade/Exportação...789`
## • `Mercados de destino da produção gerada na propriedade/Autoconsumo` ->
##   `Mercados de destino da produção gerada na propriedade/Autoconsumo...790`
## • `Meios de comercialização da produção gerada na propriedade` -> `Meios de
##   comercialização da produção gerada na propriedade...793`
## • `Meios de comercialização da produção gerada na
##   propriedade/Cooperativa/associação` -> `Meios de comercialização da produção
##   gerada na propriedade/Cooperativa/associação...794`
## • `Meios de comercialização da produção gerada na propriedade/Indústria` ->
##   `Meios de comercialização da produção gerada na propriedade/Indústria...795`
## • `Meios de comercialização da produção gerada na propriedade/Empresa
##   integradora` -> `Meios de comercialização da produção gerada na
##   propriedade/Empresa integradora...796`
## • `Meios de comercialização da produção gerada na propriedade/Intermediário` ->
##   `Meios de comercialização da produção gerada na
##   propriedade/Intermediário...797`
## • `Meios de comercialização da produção gerada na propriedade/Governo
##   (prefeitura, estado, governo federal)` -> `Meios de comercialização da
##   produção gerada na propriedade/Governo (prefeitura, estado, governo
##   federal)...798`
## • `Meios de comercialização da produção gerada na propriedade/Consumidor final`
##   -> `Meios de comercialização da produção gerada na propriedade/Consumidor
##   final...799`
## • `Meios de comercialização da produção gerada na propriedade/Vizinho` ->
##   `Meios de comercialização da produção gerada na propriedade/Vizinho...800`
## • `Meios de comercialização da produção gerada na propriedade/Feira livre` ->
##   `Meios de comercialização da produção gerada na propriedade/Feira
##   livre...801`
## • `Meios de comercialização da produção gerada na propriedade/ONG` -> `Meios de
##   comercialização da produção gerada na propriedade/ONG...802`
## • `A(s) estrada(s) pavimentada(s) liga(m) sua propriedade a qual(is)
##   lugar(es)?` -> `A(s) estrada(s) pavimentada(s) liga(m) sua propriedade a
##   qual(is) lugar(es)?...823`
## • `Área destinada para produção agropecuária` -> `Área destinada para produção
##   agropecuária...834`
## • `Área destinada para a preservação ambiental` -> `Área destinada para a
##   preservação ambiental...835`
## • `Quais técnicas de recuperação de pastagens degradadas foram utilizadas?` ->
##   `Quais técnicas de recuperação de pastagens degradadas foram
##   utilizadas?...855`
## • `Quais técnicas de recuperação de pastagens degradadas foram
##   utilizadas?/Calcário` -> `Quais técnicas de recuperação de pastagens
##   degradadas foram utilizadas?/Calcário...856`
## • `Quais técnicas de recuperação de pastagens degradadas foram
##   utilizadas?/Fertilizantes químicos` -> `Quais técnicas de recuperação de
##   pastagens degradadas foram utilizadas?/Fertilizantes químicos...857`
## • `Quais técnicas de recuperação de pastagens degradadas foram
##   utilizadas?/Outras técnicas` -> `Quais técnicas de recuperação de pastagens
##   degradadas foram utilizadas?/Outras técnicas...858`
## • `Valor gasto com aquisição de equipamentos nos últimos 12 meses` -> `Valor
##   gasto com aquisição de equipamentos nos últimos 12 meses...901`
## • `Valor gasto com manutenção de equipamentos nos últimos 12 meses` -> `Valor
##   gasto com manutenção de equipamentos nos últimos 12 meses...902`
## • `Valor gasto com mão-de-obra de fora da família nos últimos 12 meses` ->
##   `Valor gasto com mão-de-obra de fora da família nos últimos 12 meses...903`
## • `Se outra espécie, qual?` -> `Se outra espécie, qual?...930`
## • `Forma de comercialização dos peixes` -> `Forma de comercialização dos
##   peixes...938`
## • `Forma de comercialização dos peixes/Vivo` -> `Forma de comercialização dos
##   peixes/Vivo...939`
## • `Forma de comercialização dos peixes/Inteiro` -> `Forma de comercialização
##   dos peixes/Inteiro...940`
## • `Forma de comercialização dos peixes/Inteiro eviscerado` -> `Forma de
##   comercialização dos peixes/Inteiro eviscerado...941`
## • `Forma de comercialização dos peixes/Congelado` -> `Forma de comercialização
##   dos peixes/Congelado...942`
## • `Local de comercialização dos peixes` -> `Local de comercialização dos
##   peixes...945`
## • `Local de comercialização dos peixes/No município` -> `Local de
##   comercialização dos peixes/No município...946`
## • `Local de comercialização dos peixes/Em municípios vizinhos` -> `Local de
##   comercialização dos peixes/Em municípios vizinhos...947`
## • `Local de comercialização dos peixes/No estado` -> `Local de comercialização
##   dos peixes/No estado...948`
## • `Local de comercialização dos peixes/Para outros estados` -> `Local de
##   comercialização dos peixes/Para outros estados...949`
## • `Local de comercialização dos peixes/Exportação` -> `Local de comercialização
##   dos peixes/Exportação...950`
## • `Destinação dos peixes comercializados` -> `Destinação dos peixes
##   comercializados...951`
## • `Destinação dos peixes comercializados/Frigoríficos` -> `Destinação dos
##   peixes comercializados/Frigoríficos...952`
## • `Destinação dos peixes comercializados/Peixarias` -> `Destinação dos peixes
##   comercializados/Peixarias...953`
## • `Destinação dos peixes comercializados/Feiras` -> `Destinação dos peixes
##   comercializados/Feiras...954`
## • `Destinação dos peixes comercializados/Supermercados` -> `Destinação dos
##   peixes comercializados/Supermercados...955`
## • `Destinação dos peixes comercializados/Consumidor final` -> `Destinação dos
##   peixes comercializados/Consumidor final...956`
## • `Destinação dos peixes comercializados/OSP` -> `Destinação dos peixes
##   comercializados/OSP...957`
## • `Destinação dos peixes comercializados/Outro destino` -> `Destinação dos
##   peixes comercializados/Outro destino...958`
## • `Se outro destino, qual?` -> `Se outro destino, qual?...959`
## • `Área total explorada com extrativismo` -> `Área total explorada com
##   extrativismo...960`
## • `Equipamentos adquiridos` -> `Equipamentos adquiridos...962`
## • `Valor gasto com aquisição de equipamentos nos últimos 12 meses` -> `Valor
##   gasto com aquisição de equipamentos nos últimos 12 meses...980`
## • `Valor gasto com manutenção de equipamentos nos últimos 12 meses` -> `Valor
##   gasto com manutenção de equipamentos nos últimos 12 meses...982`
## • `Há contratação de mão-de-obra de fora da família?` -> `Há contratação de
##   mão-de-obra de fora da família?...983`
## • `Valor gasto com mão-de-obra de fora da família nos últimos 12 meses` ->
##   `Valor gasto com mão-de-obra de fora da família nos últimos 12 meses...984`
## • `Valor gasto com aquisição de equipamentos nos últimos 12 meses` -> `Valor
##   gasto com aquisição de equipamentos nos últimos 12 meses...987`
## • `Valor gasto com manutenção de equipamentos nos últimos 12 meses` -> `Valor
##   gasto com manutenção de equipamentos nos últimos 12 meses...990`
## • `Qual a modalidade de contratação/pagamento?` -> `Qual a modalidade de
##   contratação/pagamento?...996`
## • `Valor gasto com mão-de-obra de fora da família nos últimos 12 meses` ->
##   `Valor gasto com mão-de-obra de fora da família nos últimos 12 meses...997`
## • `Área de floresta plantada na propriedade` -> `Área de floresta plantada na
##   propriedade...1002`
## • `Se outra unidade de área, qual?` -> `Se outra unidade de área, qual?...1003`
## • `Nível de satisfação com os serviços de assistência técnica` -> `Nível de
##   satisfação com os serviços de assistência técnica...1014`
## • `Se outra fonte, qual?` -> `Se outra fonte, qual?...1017`
## • `Mercados de destino da produção gerada na propriedade` -> `Mercados de
##   destino da produção gerada na propriedade...1019`
## • `Mercados de destino da produção gerada na propriedade/Mercados
##   institucionais (PAA, PNAE)` -> `Mercados de destino da produção gerada na
##   propriedade/Mercados institucionais (PAA, PNAE)...1020`
## • `Mercados de destino da produção gerada na propriedade/Próprio município` ->
##   `Mercados de destino da produção gerada na propriedade/Próprio
##   município...1021`
## • `Mercados de destino da produção gerada na propriedade/Outros municípios no
##   mesmo estado` -> `Mercados de destino da produção gerada na
##   propriedade/Outros municípios no mesmo estado...1022`
## • `Mercados de destino da produção gerada na propriedade/Outros estados` ->
##   `Mercados de destino da produção gerada na propriedade/Outros estados...1023`
## • `Mercados de destino da produção gerada na propriedade/Exportação` ->
##   `Mercados de destino da produção gerada na propriedade/Exportação...1024`
## • `Mercados de destino da produção gerada na propriedade/Autoconsumo` ->
##   `Mercados de destino da produção gerada na propriedade/Autoconsumo...1025`
## • `Meios de comercialização da produção gerada na propriedade` -> `Meios de
##   comercialização da produção gerada na propriedade...1026`
## • `Meios de comercialização da produção gerada na
##   propriedade/Cooperativa/associação` -> `Meios de comercialização da produção
##   gerada na propriedade/Cooperativa/associação...1027`
## • `Meios de comercialização da produção gerada na propriedade/Indústria` ->
##   `Meios de comercialização da produção gerada na propriedade/Indústria...1028`
## • `Meios de comercialização da produção gerada na propriedade/Empresa
##   integradora` -> `Meios de comercialização da produção gerada na
##   propriedade/Empresa integradora...1029`
## • `Meios de comercialização da produção gerada na propriedade/Intermediário` ->
##   `Meios de comercialização da produção gerada na
##   propriedade/Intermediário...1030`
## • `Meios de comercialização da produção gerada na propriedade/Governo
##   (prefeitura, estado, governo federal)` -> `Meios de comercialização da
##   produção gerada na propriedade/Governo (prefeitura, estado, governo
##   federal)...1031`
## • `Meios de comercialização da produção gerada na propriedade/Consumidor final`
##   -> `Meios de comercialização da produção gerada na propriedade/Consumidor
##   final...1032`
## • `Meios de comercialização da produção gerada na propriedade/Vizinho` ->
##   `Meios de comercialização da produção gerada na propriedade/Vizinho...1033`
## • `Meios de comercialização da produção gerada na propriedade/Feira livre` ->
##   `Meios de comercialização da produção gerada na propriedade/Feira
##   livre...1034`
## • `Meios de comercialização da produção gerada na propriedade/ONG` -> `Meios de
##   comercialização da produção gerada na propriedade/ONG...1035`
principal$date<-date(principal$`Data e horário de início da entrevista`)
principal <- principal %>% filter(date > as.Date("2025-07-21"))

p2 <- principal %>%  filter(!`_validation_status` %in% c("Not Approved", "On Hold"))
p2$index<-p2$`_index`


p2 <- p2 %>%
  mutate(`Grupo amostral` = case_when(
    grepl("Controle", `Grupo amostral`) ~ "Controle",
    grepl("Spillover", `Grupo amostral`) ~ "Spillover",
    grepl("Tratamento", `Grupo amostral`) ~ "Tratamento",
    TRUE ~ as.character(`Grupo amostral`)  # Mantém outros valores inalterados
  ))

p2 <- p2 %>% select(where(~!all(is.na(.x))))


#há 4 questionários a mais 
#+1 em Campinas
p2 <- p2[p2$`Nome do RESPONDENTE` != "Lázaro de Lima Pereira", ]
# + 1 de Patos 
p2 <- p2[p2$`Nome do RESPONDENTE` != "Francisca Paula da Costa", ]

#tem 2 que são NA no grupo amostral 

invalidos <- p2 %>% filter(is.na(`Grupo amostral`))

p2 <- p2 %>% filter(!is.na(`Grupo amostral`))


# Gilmar de Sousa santos tá como controle, mas é spillover 
# Maria Antônia de Oliveira tá como controle, mas é spillover 

table(p2$`Grupo amostral`)
## 
##   Controle  Spillover Tratamento 
##        366         66        264
p2 <- p2 %>%
  mutate(`Grupo amostral` = case_when(
    `Nome do RESPONSÁVEL pela propriedade` == "Gilmar de Sousa santos" ~ "Spillover",
    `Nome do RESPONSÁVEL pela propriedade` == "Maria Antônia de Oliveira" ~ "Spillover",
    TRUE ~ `Grupo amostral`
  ))