Ошибка выделения памяти при попытке создать карту с пакетом евростата с R - PullRequest
1 голос
/ 01 марта 2020

Я пытаюсь загрузить данные из евростата, используя пакет евростата с R.

Набор данных можно загрузить, указав его "code_id", который в данном случае: "edat_lfse_33"

Однако, я застрял, потому что, когда я пытаюсь запустить приведенный ниже код, мой компьютер вылетает / возвращает ошибку распределения памяти.

    library(eurostat)
    library(dplyr)
    library(ggplot2)
    library(stringr)

    data=get_eurostat("edat_lfse_33")

Это возвращает огромный скачок, как показано ниже:

    # A tibble: 2,914,673 x 8
    unit  sex   isced11 duration age    geo    time values
    <fct> <fct> <fct>   <fct>    <fct>  <fct> <dbl>  <dbl>
    1 PC    F     ED0-2   TOTAL    Y15-34 AT     2018   49.9
    2 PC    F     ED0-2   TOTAL    Y15-34 AT1    2018   48.4

                               (..)

Затем, когда я пытаюсь присоединиться к предыдущему объекту tibble, используя get_eurostat_geospatial, мой p c получает сбои.

    mapdata <- get_eurostat_geospatial(nuts_level = 2, resolution='60',
                                       year=2016, 
                                       output_class = 'df') %>%
      right_join(data)%>%
      mutate(cat = cut_to_classes(values, n=2, decimals = 1))

Может ли кто-нибудь мне помочь?

1 Ответ

2 голосов
/ 01 марта 2020

Вы не можете объединить две таблицы данных, если они обе содержат дубликаты в столбце объединения. Картографические данные в порядке, потому что они содержат данные карты в правильном формате для ggplot, но таблицу данных необходимо объединить, прежде чем вы сможете присоединиться.

data2 <- data %>% 
  group_by(geo) %>%
  summarise(Values=mean(values, na.rm=TRUE))

library(ggplot2)
data2 %>% right_join(mapdata, by="geo") %>%
  #mutate(cat = cut_to_classes(Values, n=2, decimals = 1)) %>% 
  ggplot(aes(lat, long, group=group)) +
  geom_polygon(aes(fill=Values))

enter image description here

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