Как объединить два набора данных и построить их в R

#r #ggplot2 #plot #graph

Вопрос:

У меня есть этот набор данных, который представляет собой набор данных COVID для каждого округа и штата. У меня также есть этот набор данных о населении штата. Мне, вероятно, нужно каким-то образом объединить два набора данных вместе и построить график количества случаев и смертей на душу населения. Как я могу рассчитать количество случаев заболевания и смертности на душу населения для каждого штата?

У меня есть следующий код для слияния, но он повторяет состояние снова и снова и не работает.

 {r}
#to calculate average of cases and deaths in states. 
covid %>% group_by(state) %>% summarise(ave_cases= ave(cases, na.rm = TRUE), ave_deaths= ave(deaths, na.rm = TRUE))

{r}
#to merge two data frames to have access to the population of each state.
covid<- rownames_to_column (covid, var="state")
covid_new <- covid %>% 
  left_join(US_state_pop_2020_estimate , by = c("state_territory" = "state")) %>% 
  tibble()
covid_new
 

Комментарии:

1. this набор данных(набор данных о населении штата) удаляется.

2. Обновил ссылку.

Ответ №1:

Может быть, что-то вроде этого?

 library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
library(ggplot2)
options(scipen = 999999)

dat1 <- read.delim("~/Downloads/US_state_pop_2020_estimate.txt", sep = "t")
dat2 <- read.csv("~/Downloads/us-counties.csv")

dat1_renamed <- rename(dat1, "state" = "state_territory")
covid_new <- left_join(dat1_renamed, dat2, by = "state")

covid_new %>%
  group_by(state) %>%
  summarise(number_of_cases = sum(cases),
            deaths_per_capita = sum(deaths / population)) %>%
  ggplot(aes(x = state, y = deaths_per_capita, fill = number_of_cases))  
  geom_col()  
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
        axis.title.x = element_blank())  
  scale_fill_viridis_c()
 

Создано 2021-10-06 пакетом reprex (v2.0.1)

Комментарии:

1. Круто. Но в нем нет смертей. Нам нужны смерти и случаи.

2. «смертность на душу населения» отображается на оси y (т. Е. Как высоко поднимаются столбики, сколько смертей на душу населения в каждом штате), и столбики окрашены в соответствии с общим количеством случаев (более светлые столбики, больше случаев); если вы хотите что-то другое, вам нужно объяснить это более подробно. Я не возражаю помочь вам разобраться в этом, но если вы не предоставите достаточно подробностей в своем вопросе, я не собираюсь тратить время, пытаясь понять, что вы имеете в виду

3. Пока все должно быть хорошо. Я отмечу это как лучший ответ и позже, возможно, продолжу. Спасибо.

4. Добро пожаловать, и вы всегда можете создать новый вопрос, чтобы точно настроить ответ, чтобы получить именно то, что вы хотите.