14 votos

Cambio de tipo de datos en la tabla de atributos en QGIS

Tengo datos del condado en el que el "FIP" s (en realidad el Estado "FIP" s y del Condado "FIP" s combinados). Tengo datos importados como CSV con los mismos "FIP" s datos titulados 'STCounty' . Sin embargo, el shapefile "FIP" s figura como Real y el CSV llegó como un Entero y la función Join no parece funcionar. Los cuadros desplegables están en gris/vacíos.

Así que la pregunta más importante es ¿cómo se cambia el tipo de atributo en una tabla?

He intentado crear una nueva columna en el shapefile (datos del condado) y establecerla como un número entero y luego multiplicar el "FIP" s*1, pero tiene una columna llena de NULL .

Soy nuevo en QGIS y tengo mucha experiencia en MapInfo, así que el concepto de unión no es nuevo para mí, sólo la sintaxis en QGIS.

15voto

La creación de una nueva columna de números enteros es el camino correcto, pero el 1*FIPS que has utilizado (que funcionaría en Excel o Libreoffice) es donde viene el problema; QGIS no convierte automáticamente entre tipos de campo en un cálculo.

Es necesario utilizar una de las funciones de conversión ( toint se convierte en un número entero, tostring al texto, y toreal a real/decimal) con el nombre correcto de la columna:

toreal("FIPS")

Puede utilizar el plugin Tablemanager para eliminar las columnas innecesarias.

Configurar un archivo .csvt sería la mejor solución repetible, pero para una sola columna, esto debería ser bastante sencillo.

0 votos

El 1*FIPS también funciona en ArcGIS.

0 votos

Parece un poco tonto no poder simplemente cambiar el tipo de datos. Sin embargo, esta parece ser la respuesta correcta

6voto

damorg Puntos 1024

Una vez respondí a esta pregunta,

Si importa sus datos desde un archivo csv, necesita crear un archivo csvt para determinar el tipo de atributo de un campo.

Vea la explicación aquí: ¿Cambiar el valor del atributo de la capa CSV de texto a número en QGIS?

2voto

Giuseppe Maxia Puntos 236

Acabo de tener el mismo problema. En mi caso trabajo con Libreoffice y QGIS.

He exportado una tabla de R a .CSV con dos columnas: "id" y "veh". "id" es un entero y "veh" un real.

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

Cuando abro el tabla.csv en Libreoffice el campo veh se leía como "cadena". Así que creé otro campo "vehh" como la multiplicación de "veh "*1, y el resultado fue el número deseado. Luego guardé el archivo como .ODS (Oficina Libre)

Luego cargo el tabla.ODS en qgis y "vehh" fue reconocido como Real.

1voto

Dominik Puntos 136

Me tropecé con esto y tardé en descubrir que hay una respuesta mucho mejor y más actualizada a este problema: hoy en día, se puede utilizar el Herramienta de campo de refactorización de tablas de la caja de herramientas estándar de QGIS, funciona mucho mejor y es más fácil.

Básicamente vas a la caja de herramientas, encuentras el Refactorizar campos y el menú emergente le permite cambiar el tipo de datos de cada campo

Table Refactor Field Tool

Ver esto enlace para una explicación paso a paso

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X