Daha çox

Cədvəli shapefile ilə birləşdirin (eyni ölçüdə deyil)

Cədvəli shapefile ilə birləşdirin (eyni ölçüdə deyil)


R.-dən istifadə edərək bir cədvəli bir shapefile birləşdirməyə çalışıram. The shapefile verilənlər bazası cədvəldən daha böyükdür və iki məlumat dəstinin uyğun gəlmədiyi boş və ya sıfır dəyərlərə sahib olmalıyam.

Cədvəl məlumatları

yox. cədvəl_id dəyəri 1. a11 123 2. a12 456 3. a14 789

Shapefile məlumatları db

yox. poliqon_id 1. a11 2. a12 3. a13 4. a14 5. a15

İstədiyiniz nəticə (şəkil şəklində):

yox. id dəyəri 1. a11 123 2. a12 456 3. a13 0 4. a14 789 5. a15 0

Nə cəhd etdim

Mən çalışdımbirləşməkamma nəticə vermədi, çünki iki masanın fərqli ölçüləri var.

# birləşməyə çalışaraq qoşuldu <- birləşmə (cədvəl, çoxbucaqlar, by.x = "table_id", by.y = "polygons_id", hamısı = T) ## bu yeni nüsxə kitabxanası (xarici) write.dbf ilə faylın üzərinə yazmaq qatıldı, "Polygons_R.dbf") Ward_polygons <- readShapePoly (fn = "Polygons_R")

Bu xətanın alınması

'Row.names <-. Data.frame' ('* tmp *', value = value) səhv: 'row.names' uzunluq

Mən də çalışdım

çoxbucaqlar $ polygons_id <- (cədvəl)

Bu xəta əldə edilir

'[[<-. Data.frame' ('* tmp *', ad, dəyər = c (1, 2, 1, 2, 9, 8,: əvəzetmə 1309 sətir, məlumat 2490)

Əvvəlki bir yazını da oxudum (burada), amma cavabımı tapa bilmədim


Yeni cədvəl (cədvəl məlumatları) ilə shapefile's data.frame (data db) üzərində sol xarici birləşmə etmək istəyirsiniz. Bu, 'data db' -nizin bütün mövcud satırlarını saxlayacaq, uyğun sahələri birləşdirəcək və uyğun olmayan satırlar üçün çatışmayan məlumatları dolduracaq. Mən şəkilləri bir şəklində oxuduğunuzu düşünürəmspobyekt (istifadə olunurrgdalmənim nümunəmdə paket). Mən də adını dəyişdirdimmasa(ümumi funksiya adı da)myTablevə çoxbucaqlılarmyShp:

kitabxana ('rgdal') myShp <- readOGR (dsn, qat) myShp @ data <- birləşmə (x = myShp @ data, y = myTable, by.x = "table_id", by.y = "polygons_id", hamısı. x = DOĞRU)

Bu nöqtədə yeni sütunlarmyTablesütununa əlavə ediləcəkmyShp @ məlumatlarıdata.frame və qoşula bilməyən hər hansı bir sıra doldurulacaqNAdəyərlər. Keçib əvəz edə bilərsinizNAlazım olduqda dəyərlər, məsələn:

myShp @ data $ value [which (is.na (myShp @ data $ value))] <- 0

Videoya baxın: QGIS 3 - 3. Создание SHP-файлов.