Dúvida: transpor variáveis para linhas mantendo também as linhas originais

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! :upside_down_face:

1 curtida