0

在 SpatialDataFrame 中,我有以下数据结构。

> str(shapedata_trans@data)
'data.frame':   4066 obs. of  6 variables:
 $ OBJECTID  : num  1 2 3 4 5 6 7 8 9 10 ...
 $ PC4       : Factor w/ 4066 levels "1011","1012",..: 1 2 3 4 5 6 7 8 9 10 ...
 $ Aantal_mul: Factor w/ 11 levels "1","10","12",..: 1 1 5 7 1 1 5 1 1 1 ...
 $ Aantal_adr: Factor w/ 2653 levels "1","10","100",..: 2404 2599 320 383 97 2604 60 211 63 1450 ...
 $ Shape_Leng: num  5908 5489 19421 15356 4733 ...
 $ Shape_Area: num  1034025 1214502 5075544 2674418 770406 ...

除此之外,它还有更多关于多边形及其坐标的信息......这很棒。但是,为了将其简化为一个简单的表格,我们可以使用 ggplo2::fortify 或 broom::tidy

> fort_PC = fortify(shapedata_trans)
> head(fort_PC)
      long      lat order  hole piece group id
1 4.906544 52.37910     1 FALSE     1   0.1  0
2 4.906733 52.37906     2 FALSE     1   0.1  0
3 4.906739 52.37908     3 FALSE     1   0.1  0
4 4.907138 52.37901     4 FALSE     1   0.1  0
5 4.908692 52.37881     5 FALSE     1   0.1  0
6 4.909105 52.37875     6 FALSE     1   0.1  0

但是我想将@data 部分中的信息添加到这个最终表格中。PC4、Aantal_mul、Aantal_adr、Shape_Area 和 Shape_Leng 列等信息。我知道在 fortify/tidy 中我可以通过说来指定区域

> head(fortify(shapedata_trans,region = c("PC4")))
      long      lat order  hole piece   id  group
1 4.906544 52.37910     1 FALSE     1 1011 1011.1
2 4.906733 52.37906     2 FALSE     1 1011 1011.1
3 4.906739 52.37908     3 FALSE     1 1011 1011.1
4 4.907138 52.37901     4 FALSE     1 1011 1011.1
5 4.908692 52.37881     5 FALSE     1 1011 1011.1
6 4.909105 52.37875     6 FALSE     1 1011 1011.1

但这并没有让它变得更好。有没有人有办法解决吗?

4

1 回答 1

0

感谢 Chinsoon12

合并(强化(shapedata_trans),shapedata_trans@data,by.x="id",by.y="OBJECTID",all=TRUE)

再次感谢!

于 2017-04-13T09:32:16.230 回答