##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
dados <- read_csv(
"comprasGOV-mensal-VW_FT_PNCP_COMPRA_ITEM-latest.csv",
n_max = 2000
)
## Rows: 2000 Columns: 56
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (16): descricao_resumida, material_ou_servico, material_ou_servico_nome...
## dbl (19): srk_pncp_item_compra, cod_compra, cod_item_compra, numero_item_pn...
## lgl (18): codigo_classe, codigo_grupo, descricao_detalhada, orcamento_sigil...
## dttm (2): data_inclusao_pncp, data_atualizacao_pncp
## date (1): data_resultado
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
kable(summary(dados))
| srk_pncp_item_compra | cod_compra | cod_item_compra | codigo_classe | codigo_grupo | numero_item_pncp | numero_grupo | numero_item_compra | descricao_detalhada | descricao_resumida | material_ou_servico | material_ou_servico_nome | valor_unitario_estimado | valor_total | quantidade | unidade_medida | orcamento_sigiloso | item_categoria_id_pncp | item_categoria_nome | patrimonio | codigo_registro_imobiliario | criterio_julgamento_id_pncp | criterio_julgamento_nome | situacao_compra_item | situacao_compra_item_nome | tipo_beneficio | tipo_beneficio_nome | incentivo_produtivo_basico | data_inclusao_pncp | data_atualizacao_pncp | tem_resultado | cod_item_catalogo | ID_contratacao_PNCP | cod_fornecedor | nome_fornecedor | data_resultado | valor_total_resultado | valor_unitario_resultado | quantidade_resultado | id_compra | id_compra_item | ano_compra | sequencial_compra | orgao_entidade_cnpj | unidade_orgao_codigo_unidade | margem_preferencia_normal | percentual_margem_preferencia_normal | margem_preferencia_adicional | percentual_margem_preferencia_adicional | codigo_NCM | descricao_NCM | numero_controle_PNCP_compra | TXT_LINK_MATERIAL | TXT_LINK_CLASSE | TXT_LINK_SERVICO | TXT_LINK_GRUPO | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Min. :47222908 | Min. : 6861022 | Min. :16731926 | Mode:logical | Mode:logical | Min. : 1.00 | Min. :0 | Min. : 1.00 | Mode:logical | Length :2000 | Length :2000 | Length :2000 | Min. :0.000e+00 | Min. :0.000e+00 | Min. : 1 | Length :2000 | Mode :logical | Min. :3 | Length :2000 | Mode:logical | Mode:logical | Min. :1.000 | Length :2000 | Min. :1.000 | Length :2000 | Min. :1.000 | Length :2000 | Mode :logical | Min. :2024-08-29 07:10:07 | Min. :2026-04-01 07:00:28 | Mode:logical | Mode:logical | Length :2000 | Length :2000 | Length :2000 | Min. :2025-07-28 | Min. :0.000e+00 | Min. :0.000e+00 | Min. : 0 | Length :2000 | Length :2000 | Min. :2024 | Min. : 1.0 | Length :2000 | Length :2000 | Mode :logical | Mode:logical | Mode :logical | Mode:logical | Min. : 8423 | Mode:logical | Length :2000 | Mode:logical | Mode:logical | Mode:logical | Mode:logical | |
| 1st Qu.:47251540 | 1st Qu.:10167815 | 1st Qu.:49216287 | NAs :2000 | NAs :2000 | 1st Qu.: 2.00 | 1st Qu.:0 | 1st Qu.: 2.00 | NAs :2000 | N.unique :1322 | N.unique : 2 | N.unique : 2 | 1st Qu.:4.000e+00 | 1st Qu.:1.040e+02 | 1st Qu.: 4 | N.unique : 175 | FALSE:1621 | 1st Qu.:3 | N.unique : 1 | NAs :2000 | NAs :2000 | 1st Qu.:1.000 | N.unique : 4 | 1st Qu.:1.000 | N.unique : 5 | 1st Qu.:1.000 | N.unique : 3 | FALSE:2000 | 1st Qu.:2026-02-25 18:50:15 | 1st Qu.:2026-04-01 08:51:53 | TRUE:1116 | NAs :2000 | N.unique : 463 | N.unique : 427 | N.unique : 425 | 1st Qu.:2026-04-01 | 1st Qu.:4.000e+02 | 1st Qu.:8.000e+00 | 1st Qu.: 4 | N.unique : 463 | N.unique :1959 | 1st Qu.:2026 | 1st Qu.: 18.0 | N.unique : 182 | N.unique : 278 | FALSE:2000 | NAs :2000 | FALSE:2000 | NAs :2000 | 1st Qu.:30049039 | NAs :2000 | N.unique : 463 | NAs :2000 | NAs :2000 | NAs :2000 | NAs :2000 | |
| Median :47288746 | Median :10314345 | Median :50623056 | NA | NA | Median : 6.00 | Median :0 | Median : 6.00 | NA | N.blank : 0 | N.blank : 0 | N.blank : 0 | Median :2.700e+01 | Median :1.464e+03 | Median : 30 | N.blank : 0 | TRUE :379 | Median :3 | N.blank : 0 | NA | NA | Median :1.000 | N.blank : 0 | Median :2.000 | N.blank : 0 | Median :5.000 | N.blank : 0 | NA | Median :2026-03-23 16:17:06 | Median :2026-04-01 11:33:21 | NAs :884 | NA | N.blank : 0 | N.blank : 0 | N.blank : 0 | Median :2026-04-01 | Median :2.785e+03 | Median :4.200e+01 | Median : 26 | N.blank : 0 | N.blank : 0 | Median :2026 | Median : 150.0 | N.blank : 0 | N.blank : 0 | NA | NA | NA | NA | Median :30049079 | NA | N.blank : 0 | NA | NA | NA | NA | |
| Mean :47284957 | Mean :10192363 | Mean :49363218 | NA | NA | Mean : 18.24 | Mean :0 | Mean : 18.24 | NA | Min.nchar: 4 | Min.nchar: 1 | Min.nchar: 7 | Mean :1.825e+06 | Mean :5.472e+07 | Mean : 108045 | Min.nchar: 2 | NA | Mean :3 | Min.nchar: 17 | NA | NA | Mean :2.537 | Min.nchar: 11 | Mean :1.937 | Min.nchar: 7 | Mean :3.169 | Min.nchar: 13 | NA | Mean :2026-03-01 00:52:20 | Mean :2026-04-01 12:00:02 | NA | NA | Min.nchar: 28 | Min.nchar: 9 | Min.nchar: 7 | Mean :2026-03-20 | Mean :8.980e+07 | Mean :2.781e+06 | Mean : 179513 | Min.nchar: 17 | Min.nchar: 22 | Mean :2026 | Mean : 671.1 | Min.nchar: 14 | Min.nchar: 6 | NA | NA | NA | NA | Mean :46863039 | NA | Min.nchar: 28 | NA | NA | NA | NA | |
| 3rd Qu.:47300638 | 3rd Qu.:10370290 | 3rd Qu.:51142131 | NA | NA | 3rd Qu.: 20.00 | 3rd Qu.:0 | 3rd Qu.: 20.00 | NA | Max.nchar: 731 | Max.nchar: 1 | Max.nchar: 8 | 3rd Qu.:2.340e+02 | 3rd Qu.:2.004e+04 | 3rd Qu.: 437 | Max.nchar: 21 | NA | 3rd Qu.:3 | Max.nchar: 17 | NA | NA | 3rd Qu.:7.000 | Max.nchar: 15 | 3rd Qu.:2.000 | Max.nchar: 26 | 3rd Qu.:5.000 | Max.nchar: 34 | NA | 3rd Qu.:2026-04-01 09:26:29 | 3rd Qu.:2026-04-01 15:32:32 | NA | NA | Max.nchar: 28 | Max.nchar: 14 | Max.nchar: 80 | 3rd Qu.:2026-04-01 | 3rd Qu.:2.000e+04 | 3rd Qu.:2.520e+02 | 3rd Qu.: 360 | Max.nchar: 17 | Max.nchar: 22 | 3rd Qu.:2026 | 3rd Qu.: 1006.0 | Max.nchar: 14 | Max.nchar: 6 | NA | NA | NA | NA | 3rd Qu.:85364900 | NA | Max.nchar: 28 | NA | NA | NA | NA | |
| Max. :47363981 | Max. :10377412 | Max. :51207620 | NA | NA | Max. :212.00 | Max. :0 | Max. :212.00 | NA | NA | NA | NA | Max. :3.198e+09 | Max. :1.087e+11 | Max. :74018601 | NA | NA | Max. :3 | NA | NA | NA | Max. :7.000 | NA | Max. :5.000 | NA | Max. :5.000 | NA | NA | Max. :2026-04-01 22:47:43 | Max. :2026-04-01 22:50:44 | NA | NA | NA | NAs : 786 | NAs : 786 | Max. :2026-04-01 | Max. :1.087e+11 | Max. :3.198e+09 | Max. :74018601 | NA | NA | Max. :2027 | Max. :13088.0 | NA | NA | NA | NA | NA | NA | Max. :96121000 | NA | NA | NA | NA | NA | NA | |
| NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NAs :786 | NAs :786 | NAs :786 | NAs :786 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NAs :1788 | NA | NA | NA | NA | NA | NA |
library(readr)
library(dplyr)
dados <- read_csv(
"comprasGOV-mensal-VW_FT_PNCP_COMPRA_ITEM-latest.csv",
n_max = 2000
)
## Rows: 2000 Columns: 56
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (16): descricao_resumida, material_ou_servico, material_ou_servico_nome...
## dbl (19): srk_pncp_item_compra, cod_compra, cod_item_compra, numero_item_pn...
## lgl (18): codigo_classe, codigo_grupo, descricao_detalhada, orcamento_sigil...
## dttm (2): data_inclusao_pncp, data_atualizacao_pncp
## date (1): data_resultado
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Instalar o pacote apenas uma vez (se necessário)
install.packages("knitr")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.6'
## (as 'lib' is unspecified)
# Carregar o pacote
library(knitr)
# Criar um data frame simples
tabela <- data.frame(
Nome = c("Ana", "Bruno", "Carlos"),
Idade = c(25, 30, 28)
)
# Exibir a tabela formatada
kable(tabela)
| Nome | Idade |
|---|---|
| Ana | 25 |
| Bruno | 30 |
| Carlos | 28 |
ggplot(dados, aes(x = ano_compra, y = valor_total)) +
geom_line()
ggplot(dados, aes(x = valor_total)) +
geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value `binwidth`.
ggplot(dados, aes(x = "", fill = material_ou_servico_nome)) +
geom_bar(width = 1) +
coord_polar("y")
ggplot(dados, aes(x = material_ou_servico_nome)) +
geom_bar()
ggplot(dados, aes(x = material_ou_servico_nome, y = valor_total)) +
geom_violin()