I am working on data set that has multiple cumulative field cols and multiple daily field cols and by using pivot_longer looking to convert them into:
- single/long
cumulative field coland - single/long
daily field col
Snapshot of Data
"Updated.On","State","First.Dose.Administered","Second.Dose.Administered","Daily_First_dose","Daily_Second_dose"
2021-07-09,"India",297184419,69894633,2071121,1141754
2021-07-09,"Andaman and Nicobar Islands",164079,51646,795,6336
2021-07-09,"Andhra Pradesh",13372990,3379660,25571,11168
2021-07-09,"Arunachal Pradesh",583021,108393,8423,3430
2021-07-09,"Assam",6462249,1328646,52913,7681
2021-07-09,"Bihar",15741778,2638686,262299,55007
2021-07-09,"Chandigarh",483886,110610,4351,3491
2021-07-09,"Chhattisgarh",7438953,1819709,64193,42342
2021-07-09,"Dadra and Nagar Haveli and Daman and Diu",458057,57874,7122,1745
2021-07-09,"Delhi",6761634,2049318,95352,35848
Transformation of cols to:
- club
First.Dose.Administered, Second.Dose.Administeredcols tonames_to = "Dose_type",values_to = "Dose_Administered" - club
Daily_First_dose, Daily_Second_dosecols tonames_to = "Dose_type_daily",values_to = "Dose_Administered_daily"
Desired Data frame Example:
Updated.On State Dose_type Dose_Administered Dose_type_daily Dose_Administered_daily
2021-07-09 India First.Dose.Administered 297184419 Daily_First_dose 2071121
2021-07-09 India Second.Dose.Administered 69894633 Daily_Second_dose 1141754
df can be downloaded from:
library(tidyverse)
library(lubridate)
file_url1 <- "https://raw.githubusercontent.com/johnsnow09/covid19-df_stack-code/main/df_vaccination_june.csv"
df_vaccination <- read.csv(url(file_url1))
df_vaccination <- df_vaccination %>%
mutate(Updated.On = as.Date(Updated.On))
Attempt: I tried below code but not sure how to create two different values_to columns?
df_vaccination %>%
pivot_longer(cols = c(First.Dose.Administered:Second.Dose.Administered,
Daily_First_dose:Daily_Second_dose),
names_to = c("Dose_type","Dose_type_daily"),
values_to = c("Dose_Administered","Dose_Administered_daily"))