[英]R- Finding cumulative values
我有 COVID 數據。 它給出了歐洲國家在某些日期的病例數和死亡人數。 我需要 select 10 個國家,並通過畫線顯示第 1000 例確診病例之后的病例。 國家列在標題為國家的列下,病例數列在標題為病例的列下,死亡人數列在標題為死亡的列下,日期列在標題為日期的列下。 問題是我不知道如何獲得第1000個國家確診病例數以及之后的病例數。 這里是問題:“c)自第1000例確診病例以來10個國家的累計病例數”
這是我的嘗試代碼:
library(utils)
COVID_data <-read.csv("https://opendata.ecdc.europa.eu/covid19/nationalcasedeath_eueea_daily_ei/csv", na.strings = "", fileEncoding = "UTF-8-BOM")
above100th_cases <- ten_countries_cases %>%
filter(Cumulative_cases_Austria >= 1000|
Cumulative_cases_Croatia >= 1000|
Cumulative_cases_Denmark >= 1000|
Cumulative_cases_Finland >= 1000|
Cumulative_cases_France >= 1000|
Cumulative_cases_Germany >= 1000|
Cumulative_cases_Greece >= 1000|
Cumulative_cases_Iceland >= 1000|
Cumulative_cases_Italy >= 1000|
Cumulative_cases_Spain >= 1000)
#Reshape the data set in order to draw line graphs
above100th_case.m <- melt(above100th_cases,id.vars = 1)
# 0 values were below 100th, then skip these values to reach better graphs
above100th.m <- above100th_case.m %>% filter(value>0)
#Draw the graph by using ggplot
ggplot(above100th.m, aes(x=dateRep, y= value, color=variable))+
geom_line(size=1)+
#Arrange y axis, by considering min&max cumulative number of cases
scale_y_continuous(breaks = c(seq(from =5000, to =9000000, by=1001000)))+
labs(x="Date",
y="Cumulative Case Number",
title="The Cumulative Number of Cases By Date") +
facet_wrap(~variable)+
theme_bw()
這顯然是錯誤的。 我也嘗試使用 filter(if() else) 或 when_case(),但我無法應用它們。 我希望,我可以解釋自己。
這是必需的嗎?
library(utils)
COVID_data <-read.csv("https://opendata.ecdc.europa.eu/covid19/nationalcasedeath_eueea_daily_ei/csv", na.strings = "", fileEncoding = "UTF-8-BOM")
library(tidyverse)
COVID_data %>% mutate(dateRep = as.Date(dateRep, '%d/%m/%Y')) %>%
group_by(countriesAndTerritories) %>%
arrange(dateRep) %>%
mutate(cum_cases = cumsum(cases)) %>%
filter(cum_cases >= 1000) %>%
ungroup() %>%
ggplot() +
geom_line(aes(x = dateRep, y = cum_cases, color = countriesAndTerritories))
或者如果要過濾 10 個國家/地區
ten_countries <- c('Denmark', 'Croatia', 'Austria', 'Finland', 'France', 'Germany', 'Greece', 'Iceland', 'Italy', 'Spain')
COVID_data %>% filter(countriesAndTerritories %in% ten_countries) %>%
mutate(dateRep = as.Date(dateRep, '%d/%m/%Y')) %>%
group_by(countriesAndTerritories) %>%
arrange(dateRep) %>%
mutate(cum_cases = cumsum(cases)) %>%
filter(cum_cases >= 1000) %>%
ungroup() %>%
ggplot() +
geom_line(aes(x = dateRep, y = cum_cases, color = countriesAndTerritories))
由reprex package (v2.0.0) 於 2021 年 6 月 8 日創建
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.