我试图在csv中的shapefile和数据表之间进行空间连接时遇到了一些麻烦。关于空间加入R的问题
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
将成为123;
456.00
至456;
789.01
是相同的)。但是,当我在记事本中打开csv文件格式是正确的。我试着将表格读作.txt文件,但没有运气。有谁知道为什么会发生这种情况,有什么办法来克服这一点?
因为我不能参加基于精确匹配的数据,我决定尝试部分连接,因为ID都是唯一的,无论最后2个位数,这使我问题2 ...
问题2:
这是我用来连接两个:
[email protected] = data.frame([email protected], data[charmatch([email protected]$ID,Table$ID,])
这加入了数据,而且,正如预期,随着来港返回的行。我使用na.omit删除行,并且生成的数据包含所有匹配的数据。但是,在shapefile中,我所有的点都在那里。为什么这些点在记录被删除后仍然存在?
你的损失'.00'可能是一个Excel的问题 - 我记得它导出到时不可预知的事情CSV。对于'加入',你有没有尝试过使用'merge'? – alexwhan 2013-03-07 05:38:43
@alexwhan:我认为shapefile合并不是一个好方法。 Upone合并行的顺序可能会混合,而关联的形状/点的顺序不会自动更新。所以比赛方法在这里更合适。 – yellowcap 2013-03-07 19:30:27