我的目标是绘制这个由特定列着色的shapefile 。
它包含 100 个多边形。我申请fortify()
并加入一些缺失的列
# convert SpPolyDaFrame into normal dataFrame for plotting
data.df = fortify(data)
# join missing columns
data@data$id = rownames(data@data)
data.df$perc_ch = data@data$perc_ch
data.df = left_join(data.df, data@data, by=c('id'='id'))
调用后fortify()
,每个条目存在五次。(见“订单”)。
调用str()
“data.df”:
'data.frame': 500 obs. of 11 variables:
$ long : num 421667 421667 416057 416057 421667 ...
$ lat : num 8064442 8060421 8060421 8064442 8064442 ...
$ order : int 1 2 3 4 5 1 2 3 4 5 ...
$ hole : logi FALSE FALSE FALSE FALSE FALSE FALSE ...
$ piece : Factor w/ 1 level "1": 1 1 1 1 1 1 1 1 1 1 ...
$ id : chr "0" "0" "0" "0" ...
$ group : Factor w/ 100 levels "0.1","1.1","2.1",..: 1 1 1 1 1 2 2 2 2 2 ...
$ perc_ch.x: num 17.4 11.4 20.5 12 15 ...
$ z : int 1 1 1 1 1 2 2 2 2 2 ...
$ Ch_area : num 3914498 3914498 3914498 3914498 3914498 ...
$ perc_ch.y: num 17.4 17.4 17.4 17.4 17.4 ...
这是由 介绍的fortify()
。但是,只要我根据匹配列 (= perc_ch.y) 加入缺少的列,它就不会改变绘图结果。如果我在没有匹配索引 (=perc_ch.x) 的情况下添加缺失的列,由于为多边形分配了错误的值,我会因为冗余条目而遇到麻烦。
我没有看到这种复制效果的原因?