【问题标题】:R - The cumulative number of cases by days since confirmed casesR - 自确诊病例以来按天计算的累计病例数
【发布时间】:2021-08-27 11:45:11
【问题描述】:

我需要在折线图上画出剩余天数的累计病例数,假设我选择的10个国家的病例数达到10万的那一天。当病例数达到 100,000 时,我正在提取下一个日期的数据,但我不知道如何获得需要放在 x 轴上的天数。 这是原始问题:“c)绘制自第100000例确诊病例以来累计病例数的折线图”

我可以写下面的代码:

    library(utils)
COVID_data <-read.csv("https://opendata.ecdc.europa.eu/covid19/nationalcasedeath_eueea_daily_ei/csv", na.strings = "", fileEncoding = "UTF-8-BOM")

    confirmed_COVID_data <- COVID_data %>% 
  filter(countriesAndTerritories %in% ten_countries) %>%
  filter(cases >0) %>% 
  mutate(dateRep = as.Date(dateRep, '%d/%m/%Y')) %>%
  group_by(countriesAndTerritories) %>%
  arrange(dateRep) %>%
  mutate(cum_cases = cumsum(cases)) %>%
  filter(cum_cases >= 100000) 

我尝试使用以下代码为确诊病例分配日期编号,但问题是所有国家/地区的编号都是按顺序排列的。我需要每个国家/地区的天数。

confirmed_COVID_data <- tibble::rowid_to_column(confirmed_COVID_data, "confirmed_days")

如何找到每个国家/地区的日期?你能帮帮我吗?

【问题讨论】:

  • 我在下面添加了一个解决方案,但实际上您只需在代码末尾添加%&gt;% group_by(countriesAndTerritories) %&gt;% mutate(cumulative_days = row_number())。

标签: r ggplot2 dplyr tidyverse


【解决方案1】:

这应该适合你:

confirmed_COVID_data <- COVID_data %>% 
  filter(countriesAndTerritories %in% ten_countries) %>%
  filter(cases >0) %>% 
  mutate(dateRep = as.Date(dateRep, '%d/%m/%Y')) %>%
  group_by(countriesAndTerritories) %>%
  arrange(dateRep) %>%
  mutate(cum_cases = cumsum(cases)) %>%
  filter(cum_cases >= 100000) %>% 
  group_by(countriesAndTerritories) %>% 
  mutate(cumulative_days = row_number())

这将为每个国家/地区提供cumulative_days:

# Groups:   countriesAndTerritories [6]
  dateRep      day month  year   cases deaths countriesAndTerritor~ geoId countryterritoryC~ popData2020 continentExp cum_cases cumulative_days
  <date>     <int> <int> <int>   <int>  <int> <chr>                 <chr> <chr>                    <int> <chr>            <int>           <int>
1 2021-03-01     1     3  2021  456112   8414 Austria               AT    AUT                    8901064 Europe          456112               1
2 2021-03-01     1     3  2021  779096  22278 Belgium               BE    BEL                   11522440 Europe          779096               1
3 2021-03-01     1     3  2021  247038  10191 Bulgaria              BG    BGR                    6951482 Europe          247038               1
4 2021-03-01     1     3  2021  242973   5526 Croatia               HR    HRV                    4058165 Europe          242973               1
5 2021-03-01     1     3  2021 1240051  20469 Czechia               CZ    CZE                   10693939 Europe         1240051               1
6 2021-03-01     1     3  2021  211195   2361 Denmark               DK    DNK                    5822763 Europe          211195               1

【讨论】:

    猜你喜欢
    • 2020-06-29
    • 1970-01-01
    • 2022-12-12
    • 2015-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多