Как создать сюжет для указанных данных? - PullRequest
1 голос
/ 10 февраля 2020

У меня есть эти данные (формат RDS) https://drive.google.com/file/d/1wHGVKYLv5fw_gJmlAiwuxHkbGj0H-zG6/view?usp=sharing - я надеюсь, что вы можете скачать этот файл по этой ссылке. Если не можешь - дай мне знать. Моя задача - визуализировать соотношение между выбросами CO2 (метри c тонн на душу населения) и Доступом к электричеству (% населения) . Вот то, что я придумал:

data <- readRDS("WDI.rds")
View(data)
new_data <- select(data, -Country.Name.x, -Country.Code, -Region, -IncomeGroup,
                   -Indicator.Code)
new_data <- filter(new_data,
                        Indicator.Name == c("Access to electricity (% of population)",
                                            "CO2 emissions (metric tons per capita)"))
new_data <- group_by(new_data, Indicator.Name)
View(new_data)
str(new_data)

Я создал новый информационный кадр только с столбцами, которые мне были нужны для лучшего обзора, затем разделил CO2 и Доступ к электричеству - это то, что я смог сделать. Моя идея заключалась в том, чтобы группировать годы по Indicator.Name, использовать tidyr (pivot_wider), но мне, честно говоря, трудно даже визуализировать его в моей голове - довольно странно, потому что сама задача ясна и понятна. Я не использую R слишком часто, мало знаю количество пакетов, и если я работаю с такими данными, как правило, у меня уже есть столбцы «годы» и «значение». Здесь каждый год есть колонка. В конце я хотел использовать ggplot2 для создания визуализации (я не думаю, что у меня возникнут проблемы, я использую этот пакет довольно часто, когда использую R, моя проблема не в том, как правильно очистить мои данные).

1 Ответ

0 голосов
/ 10 февраля 2020

Ваш набор данных довольно запутанный, и то, что вы пытаетесь построить, недостаточно ясно, чтобы я мог оказать вам помощь в этой части.

Однако, что касается того, что вы пытаетесь сделать (выбирая годы и один категориальный столбец, чтобы изменить его форму и иметь возможность построить его), вы можете сделать это быстро, используя dplyr и tidyr как это:

library(dplyr)
library(tidyr)
library(ggplot2)
data %>% filter(Indicator.Name %in% c("Access to electricity (% of population)",
                                        "CO2 emissions (metric tons per capita)")) %>% 
  select(Indicator.Name, starts_with("X")) %>% 
  pivot_longer(-Indicator.Name, names_to = "year", values_to = "value") %>%
  mutate(year = as.numeric(gsub("X","",year))) %>%
  ggplot(aes(x = year, y = value, group = Indicator.Name, color = Indicator.Name))+
  geom_point()

enter image description here

Опять же, график не велик, потому что я думаю, что было бы более разумно иметь вторую категориальную переменную (страну или регион) и представьте либо среднее значение, либо изобразите это как boxplot. Но, насколько я понимаю, ваш вопрос был о том, чтобы иметь возможность извлечь некоторые данные из вашего фрейма данных и изменить их, чтобы иметь возможность построить их.

Итак, это отвечает на ваш вопрос?

...