Я работаю с данными JHU по коронавирусным инфекциям и пытаюсь вычислить новые случаи (и случаи смерти) по группам. Вот код:
base <- "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-"
world.confirmed <- read.csv(paste0(base,"Confirmed.csv"), sep=',', head=T)
world.confirmed <- gather( world.confirmed, Date, Cases, X1.22.20:X3.21.20)
world.deaths <- read.csv(paste0(base,"Deaths.csv"), sep=',', head=T)
world.deaths <- gather(world.deaths, Date, Deaths, X1.22.20:X3.21.20)
world.data <- merge(world.confirmed, world.deaths,
by=c("Province.State","Country.Region","Lat", "Long", "Date"))
world.data$Date <- as.Date(world.data$Date, "X%m.%d.%y")
world.data <- world.data %>%
group_by(Province.State,Country.Region,Date) %>%
arrange(Province.State, Country.Region, as.Date(Date))
После решения этого вопроса в SO Я пытался вычислить различия по группам, используя что-то вроде этого:
world.data <- world.data %>%
group_by(Lat,Long) %>%
mutate(New.Cases = Cases - lag(Cases))
Это не работа, однако; любая другая группировка тоже не имеет. Вот результаты на границе между двумя первыми странами:
Я попытался также вставить фазу arrange
и даже попытаться обнулить первую элемент группы. Та же проблема. Есть идеи?
Обновление Я использую R 3.4.4 и dplyr_0.8.5