การเปลี่ยนประเภทข้อมูลในตารางคุณสมบัติใน QGIS?


11

ฉันมีข้อมูลเคาน์ตีที่ FIPs (จริง ๆ แล้วรวมรัฐ FIPS และมณฑล FIPS เข้าด้วยกัน) ฉันมีข้อมูลที่นำเข้าเป็น CSV พร้อมกับข้อมูล FIPS ของ sames ที่ชื่อ STCounty อย่างไรก็ตาม Shapefile FIPS แสดงรายการเป็นของจริงและ CSV มาเป็นจำนวนเต็มและฟังก์ชั่นเข้าร่วมดูเหมือนจะไม่ทำงาน กล่องแบบหล่นจะเป็นสีเทา / ว่างเปล่า

ดังนั้นคำถามที่ใหญ่กว่าคือคุณจะเปลี่ยนประเภทคุณลักษณะในตารางได้อย่างไร

ฉันพยายามสร้างคอลัมน์ใหม่ใน shapefile (เขตข้อมูล) และตั้งค่าเป็นจำนวนเต็มจากนั้นคูณ FIPS * 1 แต่ได้คอลัมน์ที่เต็มด้วย "NULL"

ฉันใหม่สำหรับ QGIS และมีประสบการณ์มากมายใน MapInfo ดังนั้นแนวคิดการเข้าร่วมไม่ใช่เรื่องใหม่สำหรับฉันเพียงแค่ไวยากรณ์ใน QGIS

คำตอบ:


11

การสร้างคอลัมน์จำนวนเต็มใหม่เป็นวิธีที่ถูกต้อง - แต่สิ่ง1*FIPSที่คุณใช้ (ซึ่งจะใช้งานได้ใน Excel หรือ Libreoffice) เป็นที่ที่ปัญหาเกิดขึ้น QGIS ไม่แปลงโดยอัตโนมัติระหว่างประเภทฟิลด์ในการคำนวณ

คุณต้องใช้หนึ่งในฟังก์ชั่นการแปลง ( tointแปลงเป็นจำนวนเต็มtostringเป็นข้อความและtorealเป็นจริง / ทศนิยม) ด้วยชื่อคอลัมน์ที่ถูกต้อง:

toreal("FIPS")

คุณสามารถใช้ปลั๊กอิน Tablemanager เพื่อลบคอลัมน์ที่ไม่จำเป็นออกได้

การตั้งค่าไฟล์. csvt จะเป็นทางออกที่ดีที่สุดที่ทำซ้ำได้ แต่สำหรับคอลัมน์เดียวสิ่งนี้ควรตรงไปตรงมา


1 * FIPS ยังทำงานใน ArcGIS
L_Holcombe

ดูเหมือนว่างี่เง่าไม่สามารถเปลี่ยนประเภทข้อมูลได้ อย่างไรก็ตามดูเหมือนว่านี่จะเป็นคำตอบที่ถูกต้อง
chrismarx

6

ฉันเคยตอบคำถามนี้ถ้าคุณนำเข้าข้อมูลของคุณจากไฟล์ csv คุณต้องสร้างไฟล์ csvt เพื่อกำหนดประเภทของฟิลด์ที่เกี่ยวข้อง ดูคำอธิบายได้ที่นี่: การเปลี่ยนค่าแอตทริบิวต์ชั้นของ CSV จากข้อความเป็นตัวเลขใน QGIS

โจ


1

ฉันมีปัญหาเดียวกัน ในกรณีของฉันฉันทำงานกับ Libreoffice และ QGIS

ฉันส่งออกตารางจาก R ไปยัง. CSVด้วยสองคอลัมน์: "id" และ "ยานพาหนะ" "id" คือจำนวนเต็มและ "ยานพาหนะ" ของจริง

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

เมื่อฉันเปิดtable.csvใน Libreoffice ฟิลด์ veh ถูกอ่านเป็น "string" ดังนั้นฉันจึงสร้าง "ยานพาหนะ" อีกหนึ่งตัวด้วยการคูณของ "ยานพาหนะ" * 1 และผลลัพธ์คือจำนวนที่ต้องการ จากนั้นฉันบันทึกไฟล์เป็น. ODS (Libre Office)

จากนั้นฉันโหลดtable.ODSใน qgis และ "vehh" ได้รับการยอมรับว่าเป็นจริง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.