首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存分配错误,试图用R创建带有eurostat包的映射

内存分配错误,试图用R创建带有eurostat包的映射
EN

Stack Overflow用户
提问于 2020-03-01 15:09:26
回答 1查看 82关注 0票数 1

我正在尝试使用欧统局的R包从欧统局下载数据。

可以通过指定其“"edat_lfse_33"”(本例中为:code_id)来下载数据集。

但是,当我试图运行下面的代码时,我的计算机崩溃/返回内存分配错误。

代码语言:javascript
复制
    library(eurostat)
    library(dplyr)
    library(ggplot2)
    library(stringr)

    data=get_eurostat("edat_lfse_33")

这将返回一个巨大的tibble,如下所示:

代码语言:javascript
复制
    # 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

                               (..)

然后,一旦我尝试使用get_eurostat_geospatial加入以前的tibble对象,我的pc就会崩溃。

代码语言:javascript
复制
    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))

有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-01 16:39:21

当两个数据表都包含联接列上的重复项时,不能连接两个数据表。mapdata是可以的,因为它包含了正确格式的映射数据,但是在加入之前需要对数据表进行总结。

代码语言:javascript
复制
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))

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60476493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档