Carvalho Ribeiro Blog
  • Info

Conteúdo

  • O que é uma tabela de dados
  • Qual o objetivo
  • De onde vem a demanda
  • Como fazer
  • Pra onde vai quem é o cliente
  • Qual o resultado

Como construir tabela para artigo técnico - gtsummary

Comunicação
Author

Marcelo Carvalho dos Anjos

Published

September 12, 2022

O que é uma tabela de dados

  • Tabela é um meio eficiente de representação e comunicação de dados tendo como características principais linhas, colunas, sumarizações e comparativos.

  • Devido a versatilidade e capacidade de informações, é comum o uso em publicações técnicas e científicas.

(a) Tabuleta de barro de 539 antes de Cristo de Nippur Mesopotâmia atual Iraque, considerada uma das primeiras planilhas
(b) Resultado financeiro de uma empresa DRE
(c) Modelo de tabela nutricional de lasanha congelada- FDA
Figure 1: Exemplo de tabelas: Créditos para Penn Museum, factorialmap (DRE = P&L in US), FDA Food and Drug Administration

Qual o objetivo

  • Representar de forma compacta informações importantes que podem ser difíceis de expressar em texto ou gráficos.

  • Permitir a comparação entre valores, resumir ou definir conceitos, termos ou outros detalhes de um estudo.

  • Permitir que o leitor veja rapidamente os resultados de dados complexos os quais são organizados e descritos adequadamente no texto Slutsky (2014).

  • Trazer clareza nos resultados apresentados.

De onde vem a demanda

  • Da necessidade de registrar, computar e comunicar dados.

  • Necessidade de mostrar muitos valores em um pequeno espaço.

  • Necessidade de comparar e contrastar valores de dados com várias características ou variáveis compartilhadas.

  • Para mostrar a presença ou ausência de características específicas.

Como fazer

Para reproduzir os códigos abaixo serão necessários os pacotes tidyverse, janitor, gtsummary, gtExtras, gt.

O dados usados iris, mtcars, trial, os quais estão nos pacotes que serão carregados não sendo necessário baixá-los. Já o dado corn pode ser baixado em Kniss AR, Streibig JC (2018) Statistical Analysis of Agricultural Experiments using R

Entender bem a estrutura dos dados pode facilitar o trabalho de construção de tabelas .

flowchart LR
    A[Variável] -->B(Numerica)
    A -->C(Categórica)
    B --> D{Número \n inteiro?}
    D -->|Sim| E(Discreto)
    D -->|Não| F(Contínuo)
    C --> G{Quantas \n categorias?}
    G -->|Duas|H(Binária\Dicotômica)
    G -->|Três ou mais|I{Segue \n uma ordem?}
    I -->|Sim|J(Ordinal)
    I -->|Não|L(Norminal)

# package          -----------------------------------------------------------------
library(tidyverse)
library(gtsummary)
library(gtExtras)
library(gt)
library(survival)

# data             --------------------------------------------------------------------
data_mtcars <- mtcars %>% janitor::clean_names()
data_iris   <- iris %>% janitor::clean_names()
data_trial  <- trial
data_corn   <- read.csv("http://rstats4ag.org/data/irrigcorn.csv") %>% 
  janitor::clean_names()
data_mtcars %>% 
  select(mpg, cyl, wt, vs) %>% 
  tbl_summary(by= vs,
              label = c(mpg ~ "Milhas/galão",
                        cyl ~ "Cilindros",
                        wt ~ "Peso")) %>% 
  modify_header(label = "**Variáveis**",
                stat_1 = "V {n}",
                stat_2 = "S {n}") %>% 
  modify_spanning_header(c("stat_1","stat_2") ~ "**Type of Engine**") %>% 
  modify_caption("**Figura1. Consumo de gasolina por tipo de motor**") %>% 
  add_difference() %>% 
  bold_p(t = 0.05) %>% 
  bold_labels() %>% 
  modify_caption("<div style='text-align:left;
                 font-weight: bold;
                 color:grey'>Figura1. Consumo de gasolina por tipo de motor </div>")
Figura1. Consumo de gasolina por tipo de motor
Variáveis Type of Engine Difference2 95% CI2,3 p-value2
V 181 S 141
Milhas/galão 15.7 (14.8, 19.1) 22.8 (21.4, 29.6) -7.9 -11, -4.4 <0.001
Cilindros

2.8 1.8, 3.8
    4 1 (5.6%) 10 (71%)


    6 3 (17%) 4 (29%)


    8 14 (78%) 0 (0%)


Peso 3.57 (3.24, 3.84) 2.62 (2.00, 3.21) 1.1 0.49, 1.7 <0.001
1 Median (IQR); n (%)
2 Welch Two Sample t-test; Standardized Mean Difference
3 CI = Confidence Interval
library(survival)


tbl_fit_logreg_trial <- 
  glm(response~ trt + grade + age, data = data_trial, family = binomial(link="logit")) %>% 
  tbl_regression(exponentiate= TRUE)

tbl_fit_coxph_trial <- 
coxph(Surv(ttdeath, death)~ trt + grade + age, data = data_trial) %>% 
  tbl_regression(exponentiate = TRUE)

tbl_merge(tbls = list(tbl_fit_logreg_trial, tbl_fit_coxph_trial),
          tab_spanner = c("**Log reg**", "**Coxph**"))
Characteristic Log reg Coxph
OR1 95% CI1 p-value HR1 95% CI1 p-value
Chemotherapy Treatment





    Drug A — —
— —
    Drug B 1.13 0.60, 2.13 0.7 1.30 0.88, 1.92 0.2
Grade





    I — —
— —
    II 0.85 0.39, 1.85 0.7 1.21 0.73, 1.99 0.5
    III 1.01 0.47, 2.15 >0.9 1.79 1.12, 2.86 0.014
Age 1.02 1.00, 1.04 0.10 1.01 0.99, 1.02 0.3
1 OR = Odds Ratio, CI = Confidence Interval, HR = Hazard Ratio
data_corn %>% 
  select(irrig, yield_tonha, yield_bu_a) %>% 
  tbl_summary(by = irrig,
              label = list(yield_tonha ~ "Tons/hec",
                           yield_bu_a ~ "Bushel Acre")) %>% 
  add_difference() %>% 
  modify_header(label = "**Yield**") %>% 
  modify_spanning_header(all_stat_cols() ~ "**Irrigation type** {N} ")
Yield Irrigation type 96 Difference2 95% CI2,3 p-value2
Full, N = 481 Limited, N = 481
Tons/hec 11.42 (10.67, 12.08) 10.14 (9.40, 11.41) 1.1 0.63, 1.6 <0.001
Bushel Acre 182 (170, 193) 162 (150, 182) 18 10, 26 <0.001
1 Median (IQR)
2 Welch Two Sample t-test
3 CI = Confidence Interval
mtcars %>%
  slice_sample(n=8) %>% 
  gt() %>% 
  gt_theme_guardian() %>% 
  data_color(columns = mpg:hp, colors = c("white","red")) %>% 
  gt_highlight_rows(rows = 2, font_weight = "bold")
Warning: Since gt v0.9.0, the `colors` argument has been deprecated.
• Please use the `palette` argument to define a color palette.
This warning is displayed once every 8 hours.
mpg cyl disp hp drat wt qsec vs am gear carb
21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
mtcars %>% 
  group_by(cyl) %>% 
  summarise(mpg_data  = list(mpg), .groups = "drop") %>% 
  gt() %>% 
  gt_plt_sparkline(mpg_data)
cyl mpg_data
4 21.4
6 19.7
8 15.0
mtcars %>% 
  group_by(cyl) %>% 
  summarise(mpg_dat = list(mpg)) %>% 
  gt() %>% 
  gt_plt_dist(mpg_dat)
cyl mpg_dat
4
6
8

Pra onde vai quem é o cliente

  • Etapas de analise de resultados, validação, remodelagem ou comunicação.

  • Inclusão em documento técnico reproduzível.

  • Comunicação de descobertas ou resultados de trabalhos técnicos.

  • Documentação ou treinamento de pessoal.

Qual o resultado

  • Aperfeiçoar as técnicas de representação, calculo e comunicação de dados e estudos técnicos

  • Facilitar o entendimento das informações contidas nos documentos técnicos poupando tempo e dinheiro, permitindo a replicação e experimentos e consequentemente busca por melhoria.

  • Facilitar o reconhecimento de registros, estudos, descobertas em pesquisas futuras

(a) Registro de entrega de alimentos em diferentes regiões como Delta do Nilo. A receita em vermelho, a despesa em preto.
(b) Arquivo de Merer registro de atividade de 200 homens durante a construção da pirâmide de Gizé
Figure 2: Papiros escritos em Hierático em 2550 antes de Cristo final do reinado de Khufu(Queops) e usados para registrar atividades durante a construção da pirâmide de Khufu. Créditos: Museu do Cairo, Egito.

References

Slutsky, David. 2014. “The Use of Tables.” Journal of Wrist Surgery 03 (04): 219–19. https://doi.org/10.1055/s-0034-1395165.