Você está na página 1de 2

Manipulando Dados !

Dados Organizados - O fundamento para a manipulação em R


com dplyr e tidyr ! F M A F M A Dados arrumados complementam as M * A F
Em uma operações vetorizadas de R. Ele
Folha de Referência base de
dados
organzada:
Cada variável tem
& Cada observação
automaticamente preservará as
observações enquanto você manipula as
variáveis. Nenhum outro formato é tão
sua própria coluna tem sua própria linha intuitivo quanto esse com R. M * A

Sintaxe - Convenções úteis Remodelando Dados - Mude o formato dos dados


dplyr::tbl_df(iris)!
dplyr::data_frame(a = 1:3, b = 4:6)!
Converte os dados para a classe tbl. tbl's são mais
ww
ww ww
ww Combina vetores em um data
fáceis de examinar do que data frames. R mostra
apenas os dados que cabem na tela: ww
1005
A ww
1005
A
frame (otimizado).!

1013
A
1010
A 1013
A
1010
A
dplyr::arrange(mtcars, mpg)!

!
Source: local data frame [150 x 5]

Sepal.Length Sepal.Width Petal.Length Reúne colunas em linhas. 1010


A
tidyr::gather(cases, "year", "n", 2:4)!
1010
A
tidyr::spread(pollution, size, amount)! Ordena linhas pelos valores de
Espalha linhas em colunas.
uma coluna (menor para o maior).!
dplyr::arrange(mtcars, desc(mpg))!
1 5.1 3.5 1.4
2 4.9 3.0 1.4 Ordena linhas pelos valores de
3 4.7 3.2 1.3 uma coluna (maior para menor).!
4
5
4.6
5.0
3.1
3.6
1.5
1.4
w
110w
110p
1007 ww
110p
110
1007 w
110w
110p
1007 w
110w
110p
1007
dplyr::rename(tb, y = year)!
.. ... ... ...
Variables not shown: Petal.Width (dbl),
Species (fctr)
45
1009
45 45
1009
45
tidyr::separate(storms, date, c("y", "m", "d"))!
Separa uma coluna em várias. 45
1009
45 451009
45
tidyr::unite(data, col, ..., sep)!
Une várias colunas em uma.
Renomeia colunas de um data
frame.

dplyr::glimpse(iris)!
Sumário denso dos dados em tbl.!
Extração de Observações (Linhas) Extração de Variáveis (Colunas)
utils::View(iris)!
!
Visualiza os dados em um visor no formato de planilha
(note o V maiúsculo). w
110w
110w
110ww wwww
110
110 wp
110pw
1007
1007
110
dplyr::filter(iris, Sepal.Length > 7)!
Extrai as linhas que satisfazem o critério lógico.!
1009
45
1009
45
dplyr::select(iris, Sepal.Width, Petal.Length, Species)!
Seleciona colunas por nome ou funções auxiliares.
dplyr::distinct(iris)!
Remove linhas duplicadas.!
dplyr::sample_frac(iris, 0.5, replace = TRUE)!
!
Funções auxiliares para a seleção- ?select
select(iris, contains("."))!
Seleciona colunas cujo nome contém caracteres string.!
Seleciona frações de linhas aleatoriamente.! select(iris, ends_with("Length"))!
dplyr::sample_n(iris, 10, replace = TRUE)! Seleciona colunas cujo nomes terminam com caracteres string.!
Seleciona n linhas aleatoriamente.! select(iris, everything())!
Seleciona todas as colunas.!
dplyr::%>%! dplyr::slice(iris, 10:15)! select(iris, matches(".t."))!
Passa o objeto do lado esquerdo como o primeiro Seleciona linhas pela posição.! Seleciona colunas cujos nomes se adequam a uma expressão
regular.!
argumento (ou o argumento .) da função do lado direito. dplyr::top_n(storms, 2, date)!
select(iris, num_range("x", 1:5))!
Seleciona e ordena as top n entradas (por grupo se os Seleciona colunas nomeadas x1, x2, x3, x4, x5.!
x %>% f(y) é o mesmo que f(x, y) dados estiverem agrupados). select(iris, one_of(c("Species", "Genus")))!
y %>% f(x, ., z) é o mesmo que f(x, y, z) Seleciona colunas cujos nomes estão em um grupo de nomes.!

< Menor que


!
Lógica em R - ?Comparison, ?base::Logic
!= Diferente de
select(iris, starts_with("Sepal"))!
Seleciona colunas cujos nomes começam com caracteres
"Entubando" (ou "Piping") com %>% deixa o código mais legível, e.g.! string.!
> Maior que %in% Pertence a
iris %>% == is.na select(iris, Sepal.Length:Petal.Width)!
Igual a É NA
group_by(Species) %>% Seleciona todas as colunas entre Sepal.Length e Petal.Width
<= Menor que ou igual a !is.na Não é NA (inclusive).!
summarise(avg = mean(Sepal.Width)) %>% >= &,|,!,xor,any,al Operadores
Maior que ou igual a select(iris, -Species)!
arrange(avg) l booleanos
devtools::install_github("rstudio/EDAWR") para bases de dados Seleciona todas as colunas exceto Species.!
RStudio® é uma marca registrada da RStudio, Inc. • CC BY RStudio • info@rstudio.com • 844-448-1212 • rstudio.com! Aprenda mais com browseVignettes(package = c("dplyr", "tidyr")) • dplyr 0.4.0• tidyr 0.2.0 • Atualizado: 3/16!
Traduzido por Augusto Queiroz de Macedo • br.linkedin.com/in/augusto-queiroz-de-macedo-552b9822
Resumir Dados Criar Novas Variáveis Combinar Conjuntos de Dados
a b
x1 x2 x1 x3
A 1 A T

dplyr::summarise(iris, avg = mean(Sepal.Length))! Uniões Mutantes


B
C
2
3 + B
D
F
T =
dplyr::mutate(iris, sepal = Sepal.Length + Sepal. Width)!
Resume os dados em uma única linha de valores.! dplyr::left_join(a, b, by = "x1")!
Calcula e acrescenta uma ou mais novas colunas. ! x1 x2 x3
dplyr::summarise_each(iris, funs(mean))! A 1 T
Junta linhas coincidentes de b para a.
dplyr::mutate_each(iris, funs(min_rank))! B 2 F
Aplica uma função de resumo em cada coluna.! C 3 NA
Aplica uma função de janelamento para cada coluna.!
dplyr::count(iris, Species, wt = Sepal.Length)! x1 x3 x2 dplyr::right_join(a, b, by = "x1")!
dplyr::transmute(iris, sepal = Sepal.Length + Sepal. Width)! A T 1
Conta o número de linhas com cada valor único da Junta linhas coincidentes de a para b.
Calcula um ou mais novas colunas. Remove as originais. B F 2
variável Species (com ou sem o peso wt). D T NA

x1 x2 x3 dplyr::inner_join(a, b, by = "x1")!
A 1 T
summary! window! B 2 F Junção de dados. Mantém apenas as
function function linhas em ambos os conjuntos.
x1 x2 x3 dplyr::full_join(a, b, by = "x1")!
A 1 T
Summarise usa funções de resumo, as quais recebem Mutate usa funções de janelamento, as quais recebem um B 2 F Junção de dados. Mantém todos os
C 3 NA
um vetor de valores e retornam um único valor, como: vetor de valores e retornam outro vetor de valores, como: D NA T valores, todas as linhas.
dplyr::lead! dplyr::cumall! Uniões como Filtros
dplyr::first! min!
Copia com valores adiantados por 1.! all cumulativo! x1 x2 dplyr::semi_join(a, b, by = "x1")!
Primeiro valor de um vetor.! Mínimo de um vetor.! A 1
dplyr::lag! dplyr::cumany! Todas as linhas em a presentes em b.
dplyr::last! max! B 2
Copia com valores atrasados por 1.! any cumulativo!
Último valor de um vetor.! Máximo de um vetor.! x1 x2 dplyr::anti_join(a, b, by = "x1")!
dplyr::dense_rank! dplyr::cummean! C 3
dplyr::nth! mean! Todas as linhas em a ausentes em b.
Ranking sem brechas.! mean cumulativo!
N-ésimo valor de um vetor.! Média de um vetor.!
dplyr::min_rank! cumsum! y z
dplyr::n! median!
Ranking. Empates recebem o sum cumulativo! x1 x2 x1 x2
# de valores de um vetor.! Mediana de um vetor.! rank mínimo.! A 1 B 2
dplyr::n_distinct!
# de valores distintos de
var!
Variância de um vetor.!
dplyr::percent_rank!
Ranking redimensionado para [0, 1].!
cummax!
max cumulativo!
Operações em Conjuntos
B
C
2
3 + C
D
3
4 =
um vetor.! sd! cummin!
dplyr::row_number!
IQR! Desvio padrão de um min cumulativo! x1 x2
Ranking. Empates recebem o B 2
dplyr::intersect(y, z)!
IQR de um vetor. vetor. primeiro valor.! cumprod! C 3 Linhas que aparecem em ambos y e z.
dplyr::ntile! prod cumulativo!
x1 x2
pmax! dplyr::union(y, z)!
Agrupar Dados Separa vetor em n partes.!
max por elementos!
A
B
1
2
Linhas que aparecem em um ou em
dplyr::between! C 3
dplyr::group_by(iris, Species)! pmin! D 4 ambos y e z.
Os valores estão entre a e b?!
Agrupa dados em linhas com iguais valores de Species.! dplyr::cume_dist! min por elementos x1 x2 dplyr::setdiff(y, z)!
dplyr::ungroup(iris)! Distribuição cumulativa.
A 1
Linhas que aparecem em y mas não em z.
Remove a informação do grupo do data frame.!
! Juntar
x1 x2
iris %>% group_by(Species) %>% summarise(…)! iris %>% group_by(Species) %>% mutate(…)! A 1

Calcula resumos separados para cada grupo. Calcula novas variáveis por grupo.
B
C
2
3
dplyr::bind_rows(y, z)!
B 2 Junta z em y como novas linhas.
C 3
D 4
ir ir dplyr::bind_cols(y, z)!
C x1 x2 x1 x2
A 1 B 2 Junta z em y como novas colunas. !
B 2 C 3
C 3 D 4
Cuidado: coincide linhas pela posição.
RStudio® é uma marca registrada da RStudio, Inc. • CC BY RStudio • info@rstudio.com • 844-448-1212 • rstudio.com! devtools::install_github("rstudio/EDAWR") para bases de dados Aprenda mais com browseVignettes(package = c("dplyr", "tidyr")) • dplyr 0.4.0• tidyr 0.2.0 • Atualizado: 3/16!
Traduzido por Augusto Queiroz de Macedo • br.linkedin.com/in/augusto-queiroz-de-macedo-552b9822

Você também pode gostar