0918 Pacific time, 22 September 2020

library(dplyr); library(magrittr); library(ggplot2); library(ggsci)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
TV = read.csv("TestVConfirmed.csv")
names(TV) = c("Country", "Code", "Index", "TestPerMil", "CasesPerMil")

#Year is some sort of index.  this is badly formatted data.  
TV %>% filter(TestPerMil > 0) %>% filter(CasesPerMil > 0)  -> TV2
TV %>% filter(CasesPerMil > 0) %>% top_n(wt = TestPerMil, n = 15) -> TVN
theme_set(theme_minimal())
TV2 %>% filter(Code %in% TVN$Code) %>% ggplot(aes(x = TestPerMil, y = CasesPerMil, label = Country)) + geom_label(size = 2)

TV2 %>% lm(CasesPerMil ~ TestPerMil, data = .) %>% summary() %>% broom::tidy()
## # A tibble: 2 x 5
##   term        estimate std.error statistic  p.value
##   <chr>          <dbl>     <dbl>     <dbl>    <dbl>
## 1 (Intercept)  14.0     18.5         0.759 4.51e- 1
## 2 TestPerMil    0.0364   0.00282    12.9   8.07e-18