r - dplyr 未正确分组或使用先前组中的数据
问题描述
我正在处理有关冠状病毒感染的 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
解决方案
可能,这可能会有所帮助:
library(dplyr)
world.data %>%
mutate(Date = as.Date(Date, "X%m.%d.%y")) %>%
arrange(Country.Region, Lat, Long, Date) %>%
group_by(Country.Region, Lat, Long) %>%
mutate(New_Cases = Cases - lag(Cases),
New_deaths = Deaths - lag(Deaths))
我们arrange
根据 的数据Date
,并通过将New_Cases
今天的病例与昨天的病例相减来找到每个Country
死亡病例。
推荐阅读
- azure-active-directory - AAD B2C 添加/映射来自外部/委托身份提供者的声明?
- database - MongoDB是非关系的缺点
- azure-data-lake - 带有 DVC 的 Azure DataLake
- java - Python 到 java 图像处理翻译
- node.js - Promise 链接和解析
- spring - 在 Junit 5 测试中注入 Spring 数据存储库
- python - 在字符串数组中查找某些元素不等于零的字符串
- c - 编译时出错:“二进制/的无效操作数(具有'short int *'和'int')”
- c++ - c++:为什么我不能为类“内部”的非常量静态成员赋值?
- visual-studio - MSBuild - 如何包含/排除目录?