Ändern des Datentyps in der Attributtabelle in QGIS?

11

Ich habe County-Daten, in denen die FIPs (tatsächlich State FIPS und County FIPS kombiniert). Ich habe Daten als CSV mit den gleichen FIPS-Daten mit dem Titel STCounty importiert. Das Shapefile-FIPS wird jedoch als Real aufgeführt, und die CSV wurde als Ganzzahl eingegeben, und die Join-Funktion scheint nicht zu funktionieren. Die Dropboxen sind ausgegraut / leer.

Die größere Frage ist also, wie Sie den Attributtyp in einer Tabelle ändern können.

Ich habe versucht, eine neue Spalte im Shapefile (County-Daten) zu erstellen und auf eine Ganzzahl zu setzen und dann die FIPS * 1 zu multiplizieren, habe aber eine Spalte mit "NULL" erhalten.

Ich bin neu in QGIS und habe viel Erfahrung mit MapInfo. Daher ist das Join-Konzept für mich nicht neu, sondern nur die Syntax in QGIS.

user10525
quelle

Antworten:

11

Das Erstellen einer neuen Ganzzahlspalte ist der richtige Weg - aber bei der von 1*FIPSIhnen verwendeten (die in Excel oder Libreoffice funktionieren würde) tritt das Problem auf. QGIS konvertiert nicht automatisch zwischen Feldtypen in einer Berechnung.

Sie müssen eine der Konvertierungsfunktionen ( tointKonvertierung in Ganzzahl, tostringText und torealReal / Dezimal) mit dem richtigen Spaltennamen verwenden:

toreal("FIPS")

Sie können das Tablemanager-Plugin verwenden, um unnötige Spalten zu entfernen.

Das Einrichten einer CSVT-Datei wäre die beste wiederholbare Lösung, aber für eine einzelne Spalte sollte dies ziemlich einfach sein.

Simbamangu
quelle
Das 1 * FIPS funktioniert auch in ArcGIS.
L_Holcombe
scheint irgendwie albern, nicht nur den Datentyp ändern zu können. Dies scheint jedoch die richtige Antwort zu sein
Chrismarx
1

Ich hatte gerade das gleiche Problem. In meinem Fall arbeite ich mit Libreoffice und QGIS.

Ich habe eine Tabelle von R nach .CSV mit zwei Spalten exportiert : "id" und "veh". "id" ist Integer und "veh" Real.

write.csv(tab2,file='/path/table.csv',row.names = F)

Als ich die table.csv in Libreoffice öffne, wurde das Feld veh als "string" gelesen. Also habe ich ein weiteres Coulmn "vehh" als Multiplikation von "veh" * 1 erstellt, und das Ergebnis war die gewünschte Zahl. Dann habe ich die Datei als .ODS (Libre Office) gespeichert

Dann lade ich die table.ODS in qgis und "vehh" wurde als Real erkannt.

Sergio
quelle