Zmieniasz typ danych w tabeli atrybutów w QGIS?

11

Mam dane hrabstwa, w których FIP (w rzeczywistości stan FIPS i hrabstwo FIPS łącznie). Mam dane zaimportowane jako CSV z danymi FIPS sames o nazwie STCounty. Jednak plik kształtu FIPS jest wymieniony jako Rzeczywisty, a CSV pojawił się jako liczba całkowita, a funkcja łączenia wydaje się nie działać. Pola upuszczania są wyszarzone / puste.

Zatem większe pytania brzmią: jak zmienić typ atrybutu w tabeli?

Próbowałem utworzyć nową kolumnę w pliku shapefile (dane hrabstwa) i ustawić ją na liczbę całkowitą, a następnie pomnożyć FIPS * 1, ale otrzymałem kolumnę pełną „NULL”.

Jestem nowy w QGIS i mam duże doświadczenie w MapInfo, więc koncepcja łączenia nie jest dla mnie nowa, tylko składnia w QGIS.

użytkownik10525
źródło

Odpowiedzi:

11

Utworzenie nowej kolumny z liczbami całkowitymi jest właściwą drogą - ale to 1*FIPS, co użyłeś (który działałby w Excelu lub Libreoffice), jest źródłem problemu; QGIS nie dokonuje automatycznej konwersji między typami pól w obliczeniach.

Musisz użyć jednej z funkcji konwersji ( tointkonwertuje na liczbę całkowitą, tostringna tekst oraz torealna liczbę rzeczywistą / dziesiętną) z poprawną nazwą kolumny:

toreal("FIPS")

Możesz użyć wtyczki Tablemanager, aby następnie usunąć niepotrzebne kolumny.

Ustawienie pliku .csvt byłoby najlepszym powtarzalnym rozwiązaniem, ale w przypadku pojedynczej kolumny powinno to być dość proste.

Simbamangu
źródło
1 * FIPS działa również w ArcGIS.
L_Holcombe
wydaje się głupie, że nie można po prostu zmienić typu danych. Jednak wydaje się to poprawna odpowiedź
chrismarx
1

Właśnie miałem ten sam problem. W moim przypadku współpracuję z Libreoffice i QGIS.

Wyeksportowałem tabelę z R do .CSV z dwiema kolumnami: „id” i „Vehicle”. „id” to liczba całkowita, a „Vehicle” Real.

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

Kiedy otwieram table.csv w Libreoffice, pojazd terenowy został odczytany jako „ciąg”. Więc stworzyłem inny coulmn „Vehicle” jako mnożenie „Vehicle” * 1, a wynikiem była pożądana liczba. Następnie zapisałem plik jako .ODS (Libre Office)

Następnie ładuję table.ODS w qgis i „pojazd” został rozpoznany jako prawdziwy.

Sergio
źródło