R-如何显示插槽中的数据;“协调”;在空间多边形数据帧对象中

R-如何显示插槽中的数据;“协调”;在空间多边形数据帧对象中,r,spatial,R,Spatial,我看到了一个类似的问题,我在脑海中的一个,但解决方案没有为我工作,所以想张贴在这里为您的帮助 我正在做一个基于地理空间数据数据营课程的练习。以下是我开始执行的代码: library(sp) library(tigris) nyc_tracts <- tracts(state="NY",county="New York", cb=TRUE) 它显示以下内容: An object of class "Polygons" Slot "Polygons": [[1]] An object of

我看到了一个类似的问题,我在脑海中的一个,但解决方案没有为我工作,所以想张贴在这里为您的帮助

我正在做一个基于地理空间数据数据营课程的练习。以下是我开始执行的代码:

library(sp)
library(tigris)
nyc_tracts <- tracts(state="NY",county="New York", cb=TRUE)
它显示以下内容:

An object of class "Polygons"
Slot "Polygons":
[[1]]
An object of class "Polygon"
Slot "labpt":
[1] -73.98733  40.71516

Slot "area":
[1] 9.884812e-06

Slot "hole":
[1] FALSE

Slot "ringDir":
[1] 1

Slot "coords":
           [,1]     [,2]
 [1,] -73.98975 40.71555
 [2,] -73.98915 40.71671
 [3,] -73.98837 40.71645
 [4,] -73.98672 40.71595
 [5,] -73.98501 40.71544
 [6,] -73.98426 40.71521
 [7,] -73.98334 40.71493
 [8,] -73.98245 40.71470
 [9,] -73.98471 40.71451
[10,] -73.98534 40.71446
[11,] -73.98716 40.71431
[12,] -73.98934 40.71413
[13,] -73.99022 40.71440
[14,] -73.98975 40.71555



Slot "plotOrder":
[1] 1

Slot "labpt":
[1] -73.98733  40.71516

Slot "ID":
[1] "156"

Slot "area":
[1] 9.884812e-06
接下来,我尝试用下面的命令显示插槽“区域”、插槽“ID”和插槽“plotOrder”等,它们都有效,例如

nyc_tracts@polygons[[1]]@area
显示:

[1] 9.884812e-06
但是,我无法使插槽“coord”使用相同的语法(它似乎是一个14x2的矩阵,如上面的输出所示),我尝试了不同的组合,但它们不起作用,并且R给出了一个错误:

nyc_tracts@polygons[[1]]@coords
nyc_tracts@polygons[[1]]@coords[1,1]
错误:此“多边形”类对象没有名为“coords”的插槽

我也试着用这个:

coordinates(nyc_tracts)
但这是不正确的,尽管它没有给出错误;它似乎给出了1nyc_tracts对象所有多边形插槽“labpt”的坐标列表,而不仅仅是我希望在屏幕上看到的一个多边形[[1]](如上所示,有14行和2列)的坐标


我相信有一个非常简单的解决办法,但我找不到。非常感谢你的帮助

我对R中的空间类几乎没有经验,所以可能有更好的方法来实现您想要的。但这对我来说很有用:

nyc_tracts@polygons[[1]]@Polygons[[1]]@coords
输出:

       [,1]  [,2]
 [1,] -73.99 40.72
 [2,] -73.99 40.72
 [3,] -73.99 40.72
 [4,] -73.99 40.72
 [5,] -73.99 40.72
 [6,] -73.98 40.72
 [7,] -73.98 40.71
 [8,] -73.98 40.71
 [9,] -73.98 40.71
[10,] -73.99 40.71
[11,] -73.99 40.71
[12,] -73.99 40.71
[13,] -73.99 40.71
[14,] -73.99 40.72

如果你想在将来找到类似的东西:我是通过检查你陈述的输出得出这个结果的:

> nyc_tracts@polygons[[1]]
An object of class "Polygons"
Slot "Polygons":
[[1]] ....

所以
nyc_tracts@polygons[[1]]
显然包含一个对象多边形,我们使用
nyc获得它的第一个元素_tracts@polygons[[1]]@Polygon[[1]]
。当您在控制台中打印结果时,您会发现该对象包含您要查找的
@coords
插槽。希望这有帮助

可能使用
ggfortify::fortify
非常感谢Richard!目前还不熟悉,但一定会看一看。谢谢你的友好回复。
> nyc_tracts@polygons[[1]]
An object of class "Polygons"
Slot "Polygons":
[[1]] ....