当前位置: 首页 > 知识库问答 >
问题:

关于R中空间连接的问题

游高杰
2023-03-14

尝试在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

重要提示:学生ID包含大约500条记录,而表只有250条。学生ID中的某些记录将不匹配。

问题1:

我有一个excel文件,我将其转换为csv以导入到R中。在运行连接时,我注意到ID列中的一些数据格式发生了更改(因此123.00将变为123;456.00456;789.01相同)。然而,当我在记事本中打开csv文件时,格式是正确的。我试着将表格作为.txt文件读取,但没有成功。有人知道为什么会发生这种情况吗?有什么方法可以克服这种情况?

因为我无法基于完全匹配来连接数据,所以我决定尝试部分连接,因为IDS是唯一的,无论最后2位数字如何,这导致了问题2。。。

问题2:

以下是我用来加入两者的内容:

StudentID@data = data.frame(StudentID@data, data[charmatch(StudentID@data$ID,Table$ID,])

这联接了数据,但正如预期的那样,还返回了带有 NA 的行。我使用 na.omit 删除行,生成的数据包含所有匹配的数据。但是,在形状文件中,我的所有点仍然存在。为什么删除记录后这些点仍然存在?

共有1个答案

许振海
2023-03-14

问题1:

Excel有时会使用逗号< code >、作为小数点分隔符来导出浮点值。这可能会导致csv导入出现问题。确保excel使用points 对于小数分隔符,或者在导入时指定分隔符,即< code>read.csv('file.csv ',sep = ';')。

问题2:如果你想从shapefile中删除na值的点,你需要一个逻辑向量来选择你不想要的行。下面是一个示例(假设您的shapefile名为< code>student_points)

< code >学生积分

 类似资料:
  • 我是新来的sql,并试图使用它来加快空间分析的~120万旅行从一个csv,包含lat和lon的拾取和下降点。我想用简单的英语说: 将从感兴趣区域开始的所有行程(作为shapefile加载到我的数据库中)选择到一个表中 我正在使用的代码如下(如果有帮助,NTA或邻域制表区域,是我想在此操作结束时显示在我的表中的邻域名称): 但是,我从一开始就遇到了问题-ST_交叉点不会返回感兴趣区域内的任何点! 到

  • 若要在 Navicat 开始使用你的服务器,你要首先用连接窗口创建一个或多个连接。如果你是一个新手或不肯定服务器如何运作,你可能想看看: MySQL 用户手册 Oracle 数据库文件 PostgreSQL 用户手册 SQLite 用户手册 SQL Server MSDN Library MariaDB 文件 MongoDB 手册 若要创建新连接,请点击 “连接”并选择你的服务器类型。然后,在连接

  • 若要在 Navicat 开始使用你的服务器,你要首先用连接窗口创建一个或多个连接。如果你是一个新手或不肯定服务器如何运作,你可能想看看: MySQL 用户手册 Oracle 数据库文件 PostgreSQL 用户手册 SQLite 用户手册 SQL Server MSDN Library MariaDB 文件 MongoDB 手册 若要创建新连接,请点击 “连接”并选择你的服务器类型。然后,在连接

  • 若要在 Navicat 开始使用你的服务器,你要首先用连接窗口创建一个或多个连接。如果你是一个新手或不肯定服务器如何运作,你可能想看看: MySQL 用户手册 Oracle 数据库文件 PostgreSQL 用户手册 SQLite 用户手册 SQL Server MSDN Library MariaDB 文件 MongoDB 手册 若要创建新连接,请点击 “连接”并选择你的服务器类型。然后,在连接

  • 我正在尝试连接到R中的hive。我已经在我的R环境中加载了RJDBC和rJava库。我使用的是一台Linux服务器,hadoop(hortonworks sandbox 2.1)和R(3.1.1)安装在同一个盒子中。这是我用来连接的脚本: 我得到了这个错误: 错误。jcall(drv@jdrv,“Ljava/sql/Connection;”,“连接”,如图所示。字符(url)[1],:java。l

  • 我试图更多地理解滚动加入的工作方式,并有一些困惑,我希望有人能为我澄清这一点。举一个具体的例子: 我希望这会生成一个长的,其中滚动中的值: 另外,文档中说: 这使得看起来只有X中的东西应该返回,而正在执行的联接是内部联接,而不是外部联接。如果,但是中不存在特定的呢?再玩一点,我不明白列中有什么值。