надеюсь, я соберу все вместе для этой проблемы. первый раз для меня, и это немного сложно описать.
Я хочу добавить некоторые атрибуты в файл 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))
try #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 часов по этой простой проблеме. попробовал его с пакетом шейп-файлов, открыв шейп-файл и файл dbf, все время та же проблема.
Когда я использую внешний пакет напрямую (read.dbf).
если я сохраню dbf-файл без данных голосования (только с небольшими адаптациями из шага 1+2), это не проблема. Это должно быть связано со слиянием с данными голосования.