Daugiau

Klaida konvertuojant „SpatialPolygonsDataFrame“ į duomenų rėmelį, R scenarijų QGIS

Klaida konvertuojant „SpatialPolygonsDataFrame“ į duomenų rėmelį, R scenarijų QGIS


Bandau konvertuoti „SpatialPolygonsDataFrame“ sluoksnį į „DataFrame“, kad sukurtume brėžinius naudodamiggplot2R scenarijuje QGIS. Aš naudoju erdvinį sujungimą, norėdamas pridėti „BioClim“ vidutinės temperatūros plytelių vidurkius kiekvienoje iš daugelio daugiakampio žemės klasės savybių.

Kai ištraukiu sluoksnio atributų lentelę, visos reikšmės užpildomos kiekvienai funkcijai; tačiau R QGIS nuolat klaidą meta:

Data.frame klaida (x = sluoksnis [[X]], y = sluoksnis [[Y]]): argumentai reiškia skirtingą eilučių skaičių: 9382, 0 Vykdymas sustabdytas

Kažkodėl neatrodo, kad jis surenka antrąjį objekto „SpatialPolygonsDataFrame“ lauką.

R scenarijus, kurį sukūriau iki šiol, yra čia:

## Vektorių apdorojimas = grupė ## demonstravimo plotai ## Layer = vector ## X = Field Layer ## Y = Field Layer library ("ggplot2") ggplot (data = data.frame (x = Layer [[X]], y = Layer [[Y]])) + geom_histogram (aes (x = x)) + facet_wrap (~ y)

Šis klausimas yra tolesnis vienas iš mano ankstesnių klausimų, kuris yra čia: Naudoti „gpplot2“ briaunų įvyniojimą su QGIS?

Ar kas nors turi idėjų, kodėl ši klaida yra išmesta?


Atrodo kaip QGIS klaida.

Turiu sluoksnį su atributų stulpeliu, pavadinimu „Gastro_Rate“, tačiau mano R scenarijui perduotas sluoksnio objekto atitinkamas pavadinimas yra „Gastro_Rat“, o trūksta „e“. Išskleidžiamajame meniu rašoma „Gastro_Rate“, kintamasis „X“ yra „Gastro_Rate“, todėl jis bando gauti „Gastro_Rate“ iš erdvinių duomenų rėmo, kuriame yra „Gastro_Rat“. Taigi nepavyksta, gaunamos 0 reikšmės, o jūsų scenarijus bando ir nepavyksta sukurti duomenų rėmo.

Štai mano bandymo scenarijus:

## Vector Processing = group ## showplots ## Layer = vector ## X = Field Layer print (names (Layer))) if (! X % in % names (Layer)) {message ("Error - attribute", X, "ne", įklijuokite (pavadinimai (sluoksnis), sutraukite = ","))} spausdinkite (X) hist (sluoksnis [[X]])

Aš labai įtariu, kad kažkur yra 10 simbolių apribojimas, ir aš jaučiu stiprų deja-vu jausmą ... Dabar yra 10 simbolių apribojimas pavadinimams formos failuose, tačiau tai netaikoma QGIS atributų pavadinimams, kai jie kilę iš kitų duomenų šaltiniai (mano iš SQLite duomenų bazės).

Bet kokiu atveju, tai iš dalies yra nuojauta, nes mes nežinome, koks yra jūsų duomenų šaltinis. Bet aš manau, kad jūsų erdvinis sujungimas lėmė ilgus atributų pavadinimus.

Ah-ha! Apdorojimo įrankių rinkinio R algoritmas rašo QGIS sluoksnius į laikinus „Shapefiles“, kurie nuskaitomi į R, taigi pavadinimo sutrumpinimas įvyksta ten. Įtariu, kad paprasčiausias sprendimas būtų tai, kad QGIS kartu su laikinu formos failu įrašytų visus atributų pavadinimus į kitą laikiną failą, tada perskaitytų ir priskirtų naujus pavadinimus erdvinių duomenų rėmeliui prieš paleisdamas scenarijaus kodą.