在QGIS的属性表中更改数据类型?


11

我有其中FIP(实际上是州FIPS和县FIPS合并)的县数据。我有导入为CSV的数据,标题为STCounty的FIPS数据相同。但是,shapefile FIPS被列为Real,而CSV以Integer形式出现,并且Join函数似乎不起作用。下拉框为灰色/空。

因此,更大的问题是如何更改表中的属性类型?

我试图在shapefile(县数据)中创建一个新列,并将其设置为整数,然后将FIPS * 1乘以,但是列中充满了“ NULL”。

我是QGIS的新手,并且在MapInfo方面有很多经验,因此联接概念对我而言并不陌生,只是QGIS中的语法。

Answers:


11

创建一个新的整数列是正确的方法-但是1*FIPS您使用的方法(将在Excel或Libreoffice中使用)才是问题所在。QGIS不会在计算中自动在字段类型之间转换。

您需要使用具有正确列名的转换函数之一(toint转换为整数,tostring文本和toreal实数/小数):

toreal("FIPS")

您可以使用Tablemanager插件来删除不必要的列。

设置.csvt文件将是最好的可重复解决方案,但是对于单列而言,这应该非常简单。


1 * FIPS也可在ArcGIS中使用。
L_Holcombe

不能仅更改数据类型似乎有点愚蠢。但是,这似乎是正确的答案
chrismarx 2014年


1

我只是有同样的问题。就我而言,我与Libreoffice和QGIS合作。

我将表格从R导出到.CSV,其中包含两列:“ id”和“ veh”。“ id”是整数,“ veh”是实数。

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

当我在Libreoffice中打开table.csv时,字段veh被读取为“字符串”。因此,我创建了另一个同义的“ vehh”作为“ veh” * 1的乘积,结果是所需的数字。然后我将文件另存为.ODS(Libre Office)

然后我加载table.ODS在qgis和“ vehh”被识别为真实。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.