Oi gente,
Tenho uma planilha onde cada linha é um país, e cada coluna é uma data. Os valores nas células é o número de casos confirmados de covid naquele país naquela data.
Mas preciso transformar esses dados para que a base tenha apenas três colunas: DATA | PAÍS | CASOS.
Sabem dizer se consigo remodelar essa tabela no R? Tentei o group_by mas não deu certo.
Aqui vai um pedaço da tabela (no total ela tem quase 190 linhas e quase 100 colunas):
País;22/abr;23/abr;24/abr;25/abr;26/abr;27/abr
Afghanistan;1176;1279;1351;1463;1531;1703
Albania;634;663;678;712;726;736
Algeria;2910;3007;3127;3256;3382;3517
Andorra;723;723;731;738;738;743
Angola;25;25;25;25;26;27
Antigua and Barbuda;24;24;24;24;24;24
Argentina;3144;3435;3607;3780;3892;4003
Armenia;1473;1523;1596;1677;1746;1808
Obrigada desde já!
1 curtida
A função pivot_longer
do tidyr serve especificamente para fazer isso.
Bônus a conversão para formato de data pela função dmy
do lubridate, assumindo que todas as colunas são de 2020.
library(tidyverse)
df <- readr::read_csv2("
País;22/abr;23/abr;24/abr;25/abr;26/abr;27/abr
Afghanistan;1176;1279;1351;1463;1531;1703
Albania;634;663;678;712;726;736
Algeria;2910;3007;3127;3256;3382;3517
Andorra;723;723;731;738;738;743
Angola;25;25;25;25;26;27
Antigua and Barbuda;24;24;24;24;24;24
Argentina;3144;3435;3607;3780;3892;4003
Armenia;1473;1523;1596;1677;1746;1808
")
#> Using ',' as decimal and '.' as grouping mark. Use read_delim() for more control.
df %>%
pivot_longer(cols = -País, names_to = "Data") %>%
mutate(Data = lubridate::dmy(paste0(Data,"/2020"), locale = "pt_BR"))
#> # A tibble: 48 x 3
#> País Data value
#> <chr> <date> <dbl>
#> 1 Afghanistan 2020-04-22 1176
#> 2 Afghanistan 2020-04-23 1279
#> 3 Afghanistan 2020-04-24 1351
#> 4 Afghanistan 2020-04-25 1463
#> 5 Afghanistan 2020-04-26 1531
#> 6 Afghanistan 2020-04-27 1703
#> 7 Albania 2020-04-22 634
#> 8 Albania 2020-04-23 663
#> 9 Albania 2020-04-24 678
#> 10 Albania 2020-04-25 712
#> # … with 38 more rows
Created on 2020-04-30 by the reprex package (v0.3.0)
2 curtidas
Daniel, eu vou mandar fazer uma ESTÁTUA sua na Avenida Paulista.
Muito obrigada!
1 curtida