Manipulação de Dados CSV em R: Guia Prático

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.

  1. 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.

  1. 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"))
  1. Leitura Rápida com fread() e data.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 = ";")
  1. Manipulação de Dados com dplyr e tidyr

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"
)
  1. 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")

Tags: R CSV data.table dplyr tidyr

Publicado em 6-3 00:55 por Thomas