首页 > 解决方案 > 使用 R 计算美国不同州的 HIV 病例百分比

问题描述

我有一个数据集,其中包含 2 年内美国四个州的 HIV 病例的绝对数量。

在我的数据集中,有三列date(Jan 2018, Feb 2018 ...) , state(CA, NY, FL, MA) 和abs_cases. 我忽略了人口随时间的变化。我现在想使用人口计算每个州的相对病例数。以下是一些示例人口数据

pop<- c("CA"= 11111, "NY"= 22222, "FL"= 33333,"MA"= 444444)。

我已经尝试过使用

df%>%
group_by(state)%>%
summarize(rel_cases= state/pop) 

但是它将每个州多次划分为不同的人口。如何仅将这些值除以FL佛罗里达州的人口等?

标签: rdplyrdata-manipulationdata-wrangling

解决方案


如果没有示例数据集,这是我对您尝试做的事情的猜测。您可以使用将其转换pop为数据框enframe并将其加入dfby state。然后,您可以计算每个州每个月的每个人口的病例数。

library(tidyverse)

pop <- c("CA"= 11111, "NY"= 22222, "FL"= 33333,"MA"= 444444)
pop <- enframe(pop, "state", "pop_num")

df %>%
  left_join(pop, by = "state") %>%
  mutate(rel_cases = abs_cases/pop_num)

推荐阅读