我想利用这段时间来提高R的技能。我选择CoVID-19作为我的主题,希望可视化一些数据并可能进行分析。我会对全球化与流行病之间的联系方式感兴趣(也许通过回归分析)。但是首先,我想可视化一些数据。您有哪些建议对我的目的有用吗?我已经尝试了一点,但实际上并没有得到任何帮助。我的想法是一个简单的时间序列图,其中包含Ecdc的累积数据,如今几乎在所有报纸上都可以找到它。作为我使用的数据:
data<- read.csv(file= "https://raw.githubusercontent.com/owid/covid-19-data/master/public/data/ecdc/total_cases_per_million.csv")
我已经看过一些教程,并在Stackoverflow中进行了研究。到目前为止,我无法输出逻辑图。我的目标是在R中重新创建以下两张图片:
非常感谢,并保持健康!
由于问题似乎主要在于如何开始可视化此数据,因此这是如何绘制简单的时间序列图,并用ggplot2程序包突出显示一些国家。
库和包导入
library(tidyverse)
data<- read.csv(file= "https://raw.githubusercontent.com/owid/covid-19-data/master/public/data/ecdc/total_cases_per_million.csv")
数据采用所谓的“宽”格式,其中列是日期或地区。 ggplot2对于长数据(每个观察值都是一行)的效果更好。您可以将它们转换如下:
long <- pivot_longer(data, World:Zimbabwe)
[下一步,我们需要通过将date列转换为Date
类并丢弃NA
观察值来清理数据(不需要,但建议使用后者,如果现在得到NA
警告,可能是人为错误,而不是数据错误。
long$date <- as.Date(long$date)
long <- long[!is.na(long$value),]
我们可以选择一些我们要强调的国家。
highlight_countries <- c("Russia", "San.Marino", "United.States")
然后我们可以根据此绘制线图。有很多关于如何使用ggplot的教程,因此您可以搜索那些以根据特定需求自定义图。
ggplot(long, aes(x = date, y = value)) +
geom_line(aes(group = name,
colour = ifelse(name %in% highlight_countries, name, NA))) +
scale_colour_discrete(name = "Regions", labels = c(highlight_countries, "Other"))
由reprex package(v0.3.0)在2020-05-31创建