Trabalhando com dados reais
Usando o R para carregar e abrir um arquivo Excel ( formato xlsx) pelo R. (DICA: Abrir o arquivo usando o Excel e salvar com CSV-separado por vírgulas)
Carregando todos os arquivos do Mapa das OSC do IPEA ( trabalho realizado em 26/01/23 )
Pergunta de pesquisa: Quais são as OSC que trabalham com indígenas? Onde estão localizadas? Quais são suas fontes de recursos?
Criando um data frame apenas com OSCs que trabalham com indígenas
Realizando busca por partes de nomes/expressões (usando as funções filter e grepl)
Substituindo o nome das classes por siglas ( usando apenas [ ] )
Criando gráficos, mostrando em que Estados as OSCs que trabalham com indígenas atuam
Explorando os dados relacionados a recursos: que informações dispomos quanto às fontes de recursos?
Juntando dois data frames, tomando por base o primeiro data frame ( função left_join )
Vamos limpar os dados ( usando as funções "names" , "sub" e "as.numeric")
Criando uma nova coluna no data frame, transformando variável numérica em variável categórica
Analisando a distribuição de recursos por estados, utilizando-se gráficos de barras
#library(readxl)
#library(dplyr)
#library(ggplot2)
# DICA PARA SE LIVRAR DOS ACENTOS:
# 1.ABRIR NO EXCEL
# 2.SALVAR COMO CSV(separado por virgulas)
# 3.ABRIR USANDO O COMANDO ABAIXO
# selecione as ONGs da apoio aos indigenas
certificados= read.csv("certificado_lista.csv")
areas= read.csv("area_subarea.csv", sep =";")
projetos = read.csv("lista_projetos.csv", sep =";")
conselhos = read.csv("conselho_conferencia.csv", sep =";")
recursos= read.csv("recursos.csv", sep =";")
# As ONGs que trabalham com povos indigenas
# aparecem no banco de dados areas, coluna razao_social
# porem tem que filtrar onde apareca a palavra "indigena" ou "indio"
# DICA:
# df_novo= filter(df, grepl('Nome', coluna))
colnames(areas)
library(tidyverse)
indios = filter(areas, grepl('INDIO|INDIGENA|ORIGINARIOS',tx_razao_social_osc))
colnames(areas)
# DICA: count(df, coluna, sort= TRUE)
classe = count(indios,tx_nome_classe_atividade_economica, sort = T)
# VAMOS SELECIONAR APENAS AS CINCO MAIORES ATIVIDADES 92%
soma = (1247+321+91+67+22)
percentual = soma/1908
# DICA:
# df_n= filter(df,coluna == "Atividade 1" | "Atividade 2")
df= filter(indios,(tx_nome_classe_atividade_economica == "Atividades de associações de defesa de direitos sociais")|
(tx_nome_classe_atividade_economica == "Atividades associativas não especificadas anteriormente")|
(tx_nome_classe_atividade_economica == "Atividades de organizações associativas ligadas à cultura e à arte")|
(tx_nome_classe_atividade_economica == "Atividades de organizações religiosas")|
(tx_nome_classe_atividade_economica == "Atividades de organizações associativas profissionais")
)
colnames(df)
names(df)[3]= "Nome"
names(df)[6]= "Classe"
names(df)[11]= "UF"
# vamos ver renomear as classes por siglas, para facilitar plotagem
# vamos renomear tambem os niveis por siglas
# df["Column Name"][df["Column Name"] == "Old Value"] <- "New Value"
df["Classe"][df["Classe"] == "Atividades de associações de defesa de direitos sociais"] <- "DI"
df["Classe"][df["Classe"] == "Atividades associativas não especificadas anteriormente"] <- "NE"
df["Classe"][df["Classe"] == "Atividades de organizações associativas ligadas à cultura e à arte"] <- "CA"
df["Classe"][df["Classe"] == "Atividades de organizações religiosas"] <- "RE"
df["Classe"][df["Classe"] == "Atividades de organizações associativas profissionais"] <- "AP"
# crie um grafico de barras mostrando as diversas sub-areas
p = ggplot(df, aes(x=Classe,fill= UF))
p + geom_bar() + ggtitle("Organizações Sociedade Civil apoio aos Indigenas:Classe x Estados")+ xlab("Classe")+ ylab("Numero")
# Plotando por estados
p = ggplot(df, aes(x= UF,fill= UF ))
p + geom_bar()+ facet_wrap(~Classe)+
ggtitle("Organizações Sociedade Civil apoio aos indigenas:Classe x Estados ") + xlab("Estados")+ ylab("Numero")
# Vamos explorar quais sao as fontes de recursos
recursos = read.csv("RECURSOS.csv", sep =";")
fontes= count(recursos,tx_nome_fonte_recursos_osc, sort = T)
# A partir do dataframe de OSCs de apoio ao Indigena
# A Crie um novo dataframe com o id_osc,Nome( tx_razao_social_osc),Classe e UF
df1= df[,c(1,3,6,11)]
# A partir do dataframe de recursos OSCs de
# Crie um novo dataframe com o id_osc,Fonte(tx_nome_fonte_recursos_osc),
# Ano (dt_ano_recursos_osc) e valor (nr_valor_recursos_osc)
df2= recursos[,c(1,3,4,5)]
# Quais sao os tipos de fontes de recursos das OSCs?
fontes.recursos= count(df2,tx_nome_fonte_recursos_osc, sort = T)
# Vamos agora descobrir quais sao as fontes de recursos
# das OSCs da apoio aos indigenas.
# Vamos juntar os dois dataframes criados
# dica: https://statisticsglobe.com/r-dplyr-join-inner-left-right-full-semi-anti
# Note: a base eh o df1, da
df3= left_join(df1, df2, by = "id_osc")
# Vamos remover todos os NA do df7
df4= na.omit(df3)
# Vamos renomear as colunas
names(df4)[5]= "Fonte"
names(df4)[6]= "Ano"
names(df4)[7]= "Valor"
str(df4)
# os valores estao notacao brasileira, virgula
# precisa mudar para notacao americana, ponto
df4$Valor = sub(',','.',df4$Valor)
# precisa converter para numero
df4$Valor= as.numeric(df4$Valor)
summary(df4)
df4$Ano = sub('31/12/','',df4$Ano)
df4$Ano = as.numeric(df4$Ano)
str(df4)
df = df4
#df[is.na(df)] = 0
str(df)
summary(df)
Valores= df$Valor
tamanho =length(Valores)
NovoValor= NULL
for (i in 1:tamanho){
if(Valores[i] == 0) {
NovoValor[i]= "Nulo"
} else if ((Valores[i] > 0) & (Valores[i]<50000)){
NovoValor[i]= "Muito Baixo"
} else if ((Valores[i] > 50000) & (Valores[i]<100000)){
NovoValor[i]= "Baixo"
} else if ((Valores[i] > 100000) & (Valores[i]<200000)){
NovoValor[i]= "Medio"
} else { NovoValor[i]= "Alto"}
}
df$Categoria = NovoValor
str(df)
df$Ano.texto = as.character(df$Ano)
# Vamos ordenar pelo valor dos repasses
df= arrange(df,desc(Valor))
p = ggplot(df, aes(x=Valor))
p+ geom_histogram(bins= 5)
# Vamos mostrar por categorias e UF
p = ggplot(df, aes(Categoria, fill= UF))
p + geom_bar()
# Vamos mostrar por UF e categorias
p = ggplot(df, aes(UF, fill= Categoria))
p + geom_bar()
# Vamos mostrar por categorias e UF separando as UFs
p = ggplot(df, aes(x= Categoria, fill= UF))
p+ geom_bar()+facet_wrap(~UF)
# Vamos mostrar por categorias e UF separando as UFs
p = ggplot(df, aes(x= Categoria))
p+ geom_bar()+facet_wrap(~UF)
# Plotando repasses por ano
p = ggplot(df, aes(x= Ano.texto, fill= Categoria))
p+ geom_bar()
# Plotando repasses por ano
p = ggplot(df, aes(x= Ano,y= Valor, color = UF, size= Valor))
p+ geom_point()
# Plotando repasses por ano
p = ggplot(df, aes(x= Ano,y= Valor, color = UF, size= Valor))
p+ geom_point()+ facet_wrap(~UF)
# Plotando repasses por estado
p = ggplot(df,aes(x= UF,y=Valor))
p + geom_boxplot()