尝试在csv中的shapefile和数据表之间进行空间连接时遇到了一些麻烦。
Here's what my data looks like:
Point Shapefile's attribute data (StudentID):
ID Address Long Lat
123.00 street long lat
456.00 street long lat
789.01 street long lat
223.00 street long lat
412.02 street long lat
Data Table (Table):
ID Name Age School
123.00 name age school
456.00 name age school
789.01 name age school
223.00 name age school
412.02 name age school
重要提示:StudentID
包含大约500条记录,而表格只有250条。StudentID
中的某些记录将不匹配。
问题1:
我有一个excel文件,我将其转换为csv以导入到R.在运行连接时,我注意到我的一些数据格式在ID列中发生了更改(因此123.00
将变为{{1} } 123;
与456.00
456;
相同)。但是,当我在记事本中打开csv文件时格式化是正确的。我尝试将该表作为.txt文件读取,但没有运气。有谁知道为什么会发生这种情况以及有哪些方法可以解决这个问题?
因为我无法根据完全匹配加入数据,所以我决定尝试部分连接,因为IDS是唯一的,无论最后2位数,这导致我遇到问题2 ...
问题2:
以下是我过去加入两者的原因:
789.01
这加入了数据,但是,正如预期的那样,返回了具有NA的行。我使用na.omit删除行,结果数据包含所有匹配的数据。但是,在shapefile中,我的所有点仍然存在。为什么删除记录后这些点仍然存在?
答案 0 :(得分:0)
问题1:
Excel有时会使用逗号,
作为小数分隔符导出浮动值。这可能导致csv导入问题。确保excel对小数分隔符使用点.
,或在导入时指定分隔符,即read.csv('file.csv', sep=';')
。
问题2:
如果要从shapefile中删除带有na值的点,则需要一个逻辑向量来选择不再需要的行。下面是一个示例(假设您的shapefile名为student_points
)
student_points <- student_points[!is.na(student_points@data$age), ]