library("tidyverse")
## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.3     v purrr   0.3.4
## v tibble  3.1.0     v dplyr   1.0.5
## v tidyr   1.1.3     v stringr 1.4.0
## v readr   1.4.0     v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
pivot_longer(who, c(new_sp_m014:newrel_f65), names_to = "key", values_to = "cases") %>%
  group_by(country, year) %>%
  mutate(prop_missing = sum(is.na(cases)) / n()) %>%
  filter(prop_missing > 0, prop_missing < 1)
## # A tibble: 195,104 x 7
## # Groups:   country, year [3,484]
##    country     iso2  iso3   year key          cases prop_missing
##    <chr>       <chr> <chr> <int> <chr>        <int>        <dbl>
##  1 Afghanistan AF    AFG    1997 new_sp_m014      0         0.75
##  2 Afghanistan AF    AFG    1997 new_sp_m1524    10         0.75
##  3 Afghanistan AF    AFG    1997 new_sp_m2534     6         0.75
##  4 Afghanistan AF    AFG    1997 new_sp_m3544     3         0.75
##  5 Afghanistan AF    AFG    1997 new_sp_m4554     5         0.75
##  6 Afghanistan AF    AFG    1997 new_sp_m5564     2         0.75
##  7 Afghanistan AF    AFG    1997 new_sp_m65       0         0.75
##  8 Afghanistan AF    AFG    1997 new_sp_f014      5         0.75
##  9 Afghanistan AF    AFG    1997 new_sp_f1524    38         0.75
## 10 Afghanistan AF    AFG    1997 new_sp_f2534    36         0.75
## # ... with 195,094 more rows