我希望得到一些关于使用spdep()包创建空间权重矩阵的建议。
(1)如果我有从rnaturalearth
包下载的空间数据,并且在另一个数据集中有一个国家列表,那么什么是对数据进行子集化的有效方法?
library(rnaturalearth)
ne_sf <- ne_countries(returnclass = "sf")
我有一个国家列表,dput(in_data_set)
返回:
c("ALB", "ARE", "ARG", "ARM", "AUS", "AUT", "AZE", "BEL", "BGD",
"BGR", "BIH", "BLR", "BLZ", "BOL", "BRA", "BWA", "CAF", "CAN",
"CHE", "CHL", "CHN", "CMR", "COD", "COG", "COL", "CRI", "CYP",
"DEU", "DJI", "DNK", "DZA", "ECU", "ERI", "ESP", "EST", "ETH",
"FIN", "FJI", "FRA", "GAB", "GBR", "GEO", "GNB", "GNQ", "GRC",
"GUY", "HRV", "HUN", "IDN", "IND", "IRL", "ISL", "ISR", "ITA",
"JAM", "JOR", "JPN", "KAZ", "KEN", "KHM", "KWT", "LBN", "LBR",
"LBY", "LKA", "LSO", "LTU", "LUX", "LVA", "MAR", "MDG", "MEX",
"MLI", "MNE", "MNG", "MOZ", "MWI", "MYS", "NAM", "NIC", "NLD",
"NOR", "NPL", "NZL", "OMN", "PAK", "PAN", "PER", "PHL", "POL",
"PRT", "QAT", "ROU", "SAU", "SEN", "SLE", "SLV", "SRB", "SVN",
"SWE", "TCD", "THA", "TJK", "TTO", "TUN", "UKR", "URY", "USA",
"VNM", "ZAF", "ZMB")
因此,问题是如何使用这个由三个字母组成的国家/地区代码向量来对数据进行子集化。ne_sf
中的一个对象是iso_a3
,国家/地区代码可以与之匹配。
1.当我跳过并尝试创建一个(未子集化的)空间矩阵时,我得到如下错误(我假设在我对数据进行子集化时该错误不会消失):
w_ne_sf〈-聚合物2nb(ne_sf)%〉% nb 2 mat(样式=“W”)
wk_handle.wk_wkb(wkb,s2_geography_writer(oriented =定向,:循环7无效:边缘172与边缘174交叉
2条答案
按热度按时间4uqofj5v1#
第一个问题的答案很简单:
由reprex package(v2.0.1)于2023年1月19日创建
第二个问题的答案更具挑战性。This GitHub问题表明,球面几何可能在这里工作得不好,如果有意义,您可以重新构建它。
x6h2sr282#
对于问题的第二部分,我接受了戴夫·阿姆斯特朗的暗示,得以越过这条线,并将努力分为以下几个方面:
谢谢大家