10.2 tibble: um data frame aperfeiçoado
Data frames são a unidade fundamental de armazenamento de dados retangulares no R. O pacote tibble estende a classe data frame da base do com aperfeiçoamentos relacionados a impressão de dados (mais amigável e versátil), a seleção de dados e a manipulação de dados do tipo factor. O novo objeto é chamado de tibble e sua classe de tbl_df
.
10.2.1 Funcionalidades do tibble
Para ilustrar algumas vantagens do tibble, vamos usar o data frame prec_anual
. A criação destes dados como tibble é feita com a função de mesmo nome do pacote: tibble::tibble()
.
prec_anual_tbl <- tibble(
site = c(
"A001", "A001", "A002", "A002", "A002", "A003", "A803", "A803"
),
ano = c(2000:2001, 2000:2002, 2004, 2005, 2006),
prec = c(1800, 1400, 1750, 1470, 1630, 1300, 1950, 1100)
)
O exemplo acima é ilustrativo, pois um data frame pode ser convertido em um tibble simplesmente com a função tibble::as_tibble()
:
prec_anual_tbl <- as_tibble(prec_anual)
prec_anual_tbl
Com o tibble acima, as principais diferenças entre um tibble e um data frame podem ser enfatizadas.
quando impresso no console do R, o tibble já mostra a classe de cada variável.
vetores caracteres não são interpretados como factors em um tibble, em contraste a
base::data.frame()
que faz a coerção para factor e não conserva o nome das variáveis. Este comportamento padrão pode causar problemas aos usuários desavisados em análises posteriores.
str(data.frame("temp. do ar" = "18"))
- permite usar seus próprios argumentos prévios para definir variáveis durante a criação do tibble; veja o exemplo abaixo, onde a
int prec
(intensidade da precipitação) é baseada na razão da precipitação (prec
) pelo número de dias no ano.
prec_anual_tbl <- tibble(
site = c(
"A001", "A001", "A002", "A002", "A002", "A003", "A803", "A803"
),
ano = c(2000:2001, 2000:2002, 2004, 2005, 2006),
prec = c(1800, 1400, 1750, 1470, 1630, 1300, 1950, 1100),
"int prec" = prec / 365.25
)
prec_anual_tbl
- nunca adiciona nomes às linhas (
row.names
)
# nomes das linhas de um data frame são carregados adiante
subset(prec_anual, ano == 2001)
# tibble não possui nome de linhas (rownames)
subset(prec_anual_tbl, ano == 2001)
- a impressão de um tibble mostra as dez primeiras linhas e a quantidade de colunas mostradas é ajustada ao tamanho da janela do console.
As opções de controle default da impressão de tibbles no console pode ser configuradas através da função de opções de configuração global do R:
m <- 15
n <- 3
options(
tibble.print_max = m,
tibble.print_min = n
)
Com a configuração acima, será impresso no console do R n = 3
linhas do tibble se ele tiver mais de m = 15
linhas.
nrow(clima_rs) > 15
# coersão do data.frame clima_rs para tibble
clima_rs_tbl <- as_tibble(clima_rs)
Para restaurar as opções default use:
options(
tibble.print_max = NULL,
tibble.print_min = NULL
)
clima_rs_tbl
Uma alternativa útil para inspecionar mais detalhadamente os dados é a função tibble::glimpse()
.
glimpse(clima_rs)
Lembre-se também, da função utils::View()
para visualizar os dados no RStudio.
View(clima_rs)
Outros aspectos diferencias do tibble podem consultados na vinheta do referido pacote (vignette("tibble")
).