Introdução ao Processamento de CSV no R
O R é uma linguagem amplamente utilizada em ciência de dados, oferecendo ferramentas robustass para manipular arquivos CSV. Este guia aborda funções essenciais como read.csv() e fread(), além de pacotes como dplyr e tidyr para transformação de dados. Técnicas para lidar com valores ausentes, treinamento de modelos de aprendizado de máquina e exportação de resultados também são exploradas para otimizar fluxos de trabalho analíticos.
- Fundamentos do R para Dados
Origens e Características
Desenvolvido em 1993 por Ross Ihaka e Robert Gentleman, o R evoluiu como uma linguagem estatística de código aberto. Sua flexibilidade permite aplicações em análise financeira, bioinformática e mineração de dados, suportada por uma comunidade ativa que contribui com pacotes especializados.
Aplicações em Análise de Dados
O R facilita operações desde a importação de dados até visualizações complexas. Para iniciarmos, é crucial dominar a leitura de arquivos, que exploraremos a seguir.
- Leitura de CSV com
read.csv()
Estrutura e Parâmetros
A função read.csv() lê arquivos CSV e os armazena como data frames. Sua sintaxe básica é:
dados_csv <- read.csv(
caminho_arquivo,
cabecalho = TRUE,
separador = ",",
decimal = ".",
pular_linhas = 0
)
Parâmetros-chave incluem sep para delimitadores alternativos (ex: ";" ou "\t") e colClasses para otimizar tipos de dados em arquivos grandes.
Criação e Inspeção de Data Frames
Data frames são estruturas centrais no R. Exemplo de criação:
conjunto_dados <- data.frame(
Nome = c("Ana", "Carlos", "Maria"),
Idade = c(28, 35, 42),
Salario = c(5000, 7000, 9000)
)
str(conjunto_dados)
head(conjunto_dados, n = 2)
Personalização e Desempenho
Para colunas com nomes irregulares, use col.names. Em arquivos volumosos, pré-carregue apenas parte dos dados:
amostra <- read.csv("dados_grandes.csv", nrows = 100, colClasses = c("numeric", "character"))
- Leitura Rápida com
fread()edata.table
Comparação com read.csv()
A função fread() do pacote data.table oferece velocidade superiro e infere automaticamente tipos de colunas. Exemplo comparativo:
# Com fread()
dt_rapido <- data.table::fread("arquivo_massivo.csv")
# Com read.csv()
df_lento <- read.csv("arquivo_massivo.csv")
fread() utiliza paralelização e otimização de memória, ideal para big data.
Técnicas Avançadas com data.table
Converta data frames para data.table para operações eficientes:
library(data.table)
dt <- as.data.table(conjunto_dados)
dt[, media_salario := mean(Salario), by = Nome]
Para exportar, use fwrite():
fwrite(dt, "resultado.csv", sep = ";")
- Manipulação de Dados com
dplyretidyr
Operações Essenciais com dplyr
O pacote dplyr simplifica tarefas como filtragem e agregação. Utilize o operador pipe (%>%) para encadear funções:
library(dplyr)
resultado <- conjunto_dados %>%
filter(Idade > 30) %>%
arrange(desc(Salario)) %>%
summarise(media = mean(Salario))
Reshape de Dados com tidyr
Transforme dados de formato largo para longo:
library(tidyr)
dados_largos <- data.frame(
id = 1:3,
metrica_2020 = c(10, 20, 30),
metrica_2021 = c(15, 25, 35)
)
dados_longos <- pivot_longer(
dados_largos,
cols = starts_with("metrica"),
names_to = "ano",
values_to = "valor"
)
- Integração com Aprendizado de Máquina e Exportação
Tratamento de Valores Ausentes
Detecte e trate missing values com funções como na.omit() ou imputação por média:
dados_completos <- na.omit(conjunto_dados)
# Ou imputação
dados_imputados <- conjunto_dados %>%
mutate(across(where(is.numeric), ~replace_na(., mean(., na.rm = TRUE))))
Modelagem com caret
O pacote caret unifica treinamento de modelos. Exemplo com floresta aleatória:
library(caret)
modelo_rf <- train(
Salario ~ .,
data = conjunto_dados,
method = "rf",
trControl = trainControl(method = "cv", number = 5)
)
Exportação para Diferentes Formatos
Exporte resultados para CSV ou outros formatos:
write.csv(resultado, "relatorio.csv", row.names = FALSE)
# Para Excel
library(openxlsx)
write.xlsx(resultado, "relatorio.xlsx")