【问题标题】:How can I select specific regions from a shapefile?如何从 shapefile 中选择特定区域?
【发布时间】:2022-06-16 01:36:29
【问题描述】:

我有现在的 shapefile

heitaly<- readOGR("ProvCM01012017/ProvCM01012017_WGS84.shp")

FinalData<- merge(italy, HT, by.x="COD_PROV", by.y="Domain")

但我感兴趣的不是整个意大利,而是相同的省份。我怎样才能得到它们?

【问题讨论】:

  • 其余数据是什么样的?如果您去 head(FinalData) 或 dput(FinalData) 并将结果粘贴到您的问题中。这将帮助我们回答您!
  • 如果你熟悉 dplyr 和整个 tidyverse,那么你可以使用 sf 包,它使用通用的 dplyr 函数,例如 filter 和 select 来获取你想要的区域
  • 也许反转你的merge 有帮助吗? IE。 merge(HT, italy, etc...)。但如果不了解数据结构,就很难看到这一点
  • 参见all、all.x和all.y在merge函数的文档中,默认情况下合并执行内部连接,因此只有italy`` and in HT`中的数据将保留.

标签: r mapping shapefile


【解决方案1】:

有多种方法可以将类别选择到 shapefile 中。我不知道你想要什么。例如,如果要为绘图中的特定区域着色或从 shapefile 属性表中选择一行。

绘制:

plot(shape, col = shape$column_name == "element") # general example

plot(heitaly, col = heitaly$COD_PROV == "name of province") # your shapefile

到属性表:

df &lt;- shape %&gt;% data.frame 这将为您提供完整的属性表

row &lt;- shape %&gt;% data.frame %&gt;% slice(1)

这将为您提供所有列的第一行。如果您将数字 1 更改为另一个数字,例如 3,将为您提供第 3 行的信息

希望对你有用

【讨论】:

  • 我必须选择多个区域进行着色,而其他区域必须保持白色。我该怎么做?
  • @plonthe 您可以制作一个名为 cols 的先前向量并将您想要绘制的省份子集。例如cols &lt;- heitaly$COD_PROV[1:5]。然后你可以使用代码plot(heitaly, col = cols)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-12
  • 1970-01-01
  • 2017-02-14
  • 1970-01-01
  • 2017-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多