0

我正在尝试创建空间点变量,以便 R 将列识别为地理坐标。代码和错误消息如下所示。我认为这可能与我的坐标是东和北坐标 WGS 84 而不是通常的经度/纬度这一事实有关?任何帮助将不胜感激。

大象.all.sp<-SpatialPoints(elephant[c(GPS.E,GPS.S)])
h(simpleError(msg, call)) 中的错误:在为函数选择方法时评估参数“obj”时出错坐标':选择了未定义的列

大象.all.sp<-SpatialPoints(elephant[c(GPS.S,GPS.E),])
.local(obj, ...) 中的错误:无法从非数字矩阵中导出坐标

4

1 回答 1

0

Eastings 和 Northings 应该不是问题,R 应该理解每一种格式。看来你有两个错误。在第一行中,您缺少引号:

elephant.all.sp<-SpatialPoints(elephant[c("GPS.E","GPS.S")])

使用括号符号从 data.frame 中提取需要一个文本向量。未引用仅在使用时有效$,例如elephant$GPS.E.

在第二行,你得到一个强制错误。R 理解您正在给 SpatialPoints() 一个填充有文本的矩阵,它不明白如何将其转换为数字和坐标。这很可能是因为您将称为“GPS.E”和“GPS.S”而不是列。这是因为您将c("GPS.E","GPS.S")逗号之前放在括号中间。正确的形式应该是:

elephant.all.sp<-SpatialPoints(elephant[,c("GPS.S","GPS.E")])

请注意,当括号中没有逗号时,R 将给出的值视为列索引(在 data.frames 中),这使得我的答案中的两行等效。

于 2021-01-04T17:24:46.010 回答