R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

# Instalar e carregar os pacotes necessários
if (!require("ggplot2")) install.packages("ggplot2", dependencies=TRUE)
## Carregando pacotes exigidos: ggplot2
library(ggplot2)

# Ler o dataset (substitua 'seu_dataset.csv' pelo caminho do seu arquivo)
dataset <- read.csv("data/valores.csv")

# Verificar a estrutura dos dados
str(dataset)
## 'data.frame':    202 obs. of  4 variables:
##  $ Nome       : chr  "Hemacias" "Hemoglobina" "Hematocrito" "VCM" ...
##  $ Data       : chr  "29/08/2022" "29/08/2022" "29/08/2022" "29/08/2022" ...
##  $ Laboratorio: chr  "ProSangue" "ProSangue" "ProSangue" "ProSangue" ...
##  $ Valor      : chr  "5,78" "15,4" "46,6" "80,6" ...
# Garantir que a coluna 'data' seja do tipo Date
dataset$Data <- as.Date(dataset$Data, format="%d/%m/%Y") # Ajuste o formato da data conforme necessário

# Definir a função
grafico_linha <- function(data, nome_exame) {
  # Filtrar os dados pelo nome do exame
  dados_filtrados <- subset(data, Nome == nome_exame)
  
  # Verificar se os dados foram filtrados corretamente
  if (nrow(dados_filtrados) == 0) {
    stop("Nenhum dado encontrado para o exame especificado.")
  }
  
  # Garantir que a coluna 'Valor' seja numérica
  dados_filtrados$Valor <- as.numeric(gsub(",", ".", dados_filtrados$Valor))  # Trocar vírgula por ponto
  
  # Ordenar os dados pela coluna de data
  dados_filtrados <- dados_filtrados[order(dados_filtrados$Data), ]
  
  # Criar o gráfico de linha com pontos
  grafico <- ggplot(dados_filtrados, aes(x = Data, y = Valor, group = 1)) +
    geom_line() +
    geom_point() +
    labs(title = paste("Valores do exame:", nome_exame),
         x = deparse(substitute(Data)),
         y = deparse(substitute(Valor))) +
    scale_x_date(date_labels = "%Y-%m", date_breaks = "1 month") +
    theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
    
    # Ajustar o formato do eixo Y para exibir valores numéricos ordenados corretamente
    scale_y_continuous(labels = scales::comma) + 
    
    # Adicionar a linha vermelha vertical no ponto "2023-09"
    geom_vline(xintercept = as.Date("2023-09-01"), color = "red", linetype = "dashed", size = 1) +
    
    # Adicionar a legenda descritiva ao lado da linha
    annotate("text", x = as.Date("2023-09-01"), y = max(dados_filtrados$Valor, na.rm = TRUE),
             label = "Início do imunobiológico", color = "red", hjust = -0.1, vjust = 1)
  
  # Retornar o gráfico
  return(grafico)
}

Including Plots

## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.