希望我把所有东西都放在一起解决这个问题。对我来说是第一次,描述起来有点棘手。
我想向 dbf 文件添加一些属性,然后将其保存以在 qgis 中使用。其关于选举和数据是来自11个政党的绝对值和相对值的投票。我为此使用了 shapefiles 包,但也简单地使用了外文进行了尝试。
我的系统:RStudio 0.97.311、R 2.15.2、shapefile 0.7、外国 0.8-52、ubuntu 12.04
尝试#1 => 没问题
shpDistricts <- read.shapefile(filename)
shpDataDistricts <- shpDistricts$dbf[[1]]
shpDataDistricts <- shpDataDistricts[, -c(3, 4, 5)] # delete some columns
shpDistricts$dbf[[1]] <- shpDataDistricts
write.shapefile(shpDistricts, filename))
尝试#2 =>“get 中的错误(“write.dbf”,“package:foreign”)(dbf$dbf,out.name):无法处理矩阵/数组列”
shpDistricts <- read.shapefile(filename)
shpDataDistricts <- shpDistricts$dbf[[1]]
shpDataDistricts <- shpDataDistricts[, -c(3, 4, 5)] # delete some columns
shpDataDistricts <- cbind(shpDataDistricts, votesDistrict[, 2]) # add a new column
names(shpDataDistricts)[5] <- "SPOE"
shpDistricts$dbf[[1]] <- shpDataDistricts
write.shapefile(shpDistricts, filename))
写入函数返回“get("write.dbf", "package:foreign")(dbf$dbf, out.name) 中的错误:无法处理矩阵/数组列”
因此,只需向 data.frame 添加一列(整数),write.dbf 函数就无法再写出。我现在在这个简单的问题上调试了 3 个小时。通过打开 shapefile 和 dbf 文件尝试使用 shapefiles 包,一直都是同样的问题。
当我直接使用外部包时(read.dbf)。
如果我在没有投票数据的情况下保存 dbf 文件(仅使用步骤 1+2 中的小调整),那没问题。它必须与与投票数据的合并有关。