相关疑难解决方法(0)

如何将数据框转换为空间坐标

我一直在研究具有lat long值的地震数据,我想将这些lat long值转换为空间坐标.

假设我有以下数据集df:

longitude          latitude
        128.6979    -7.4197
        153.0046    -4.7089
        104.3261    -6.7541
        124.9019    4.7817
        126.7328    2.1643
        153.2439    -5.6500
        142.8673    23.3882
        152.6890    -5.5710
Run Code Online (Sandbox Code Playgroud)

我想将它转换为空间点.像这样的东西:

 lon        lat  
[1,] 2579408.24 1079721.15
[2,] 2579333.69 1079729.18
[3,] 2579263.65 1079770.55
[4,] 2579928.04 1080028.46
[5,] 2579763.65 1079868.92
[6,] 2579698.00 1079767.97
Run Code Online (Sandbox Code Playgroud)

我使用了以下代码:

library(sp)
df.sp<-df
coordinates(df.sp)<-~x+y
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

Error in `[.data.frame`(object, , -coord.numbers, drop = FALSE) : 
  undefined columns selected
Run Code Online (Sandbox Code Playgroud)

gis r geospatial

40
推荐指数
3
解决办法
5万
查看次数

R调试:"只有0可以与负下标混合"

我有一个脚本,当我在R Studio中手动运行时工作正常,但是当我通过包装器从另一个程序运行它时不起作用.

我在调试输出中得到这个信息:

[912] Error in xj[i] : only 0's may be mixed with negative subscripts 
[912] Calls: GetTopN -> cor -> is.data.frame -> [ -> [.data.frame 
Run Code Online (Sandbox Code Playgroud)

如果我在收到错误之前保存图像然后在R Studio中加载它,我执行时会得到相同的错误GetTopN(10).但是,如果我actionlist<- sqlQuery(channel,al_string)在R Studio中重新运行语句,然后执行GetTopN(10)一切正常工作.

我甚至试图在关键调用之前将图像保存在R Studio中,然后在执行GetTopN(10)之前通过包装器加载它,我得到了同样的错误.

我检查了所有相关变量(crs,z,x,n)似乎都有正确的值.我不知道这可能是什么原因,我真的很感激一些帮助!

以下是正在执行的内容(按顺序):

#INIT:
library(RODBC)
library(stats)

channel<- odbcConnect("data")
crs<-mat.or.vec(3000,5) #will hold correlations
n1<-seq(-33,0)

#Get whole series
z <- sqlQuery(channel,"SELECT RPos,M1,M2,M3,M4 FROM `data`.`z` ")
al_string <- "SELECT RPos,OpenTime FROM z JOIN actionlist on(OpenTime = pTime)"
trim_string<- "DELETE FROM ActionList WHERE OpenTime NOT IN …
Run Code Online (Sandbox Code Playgroud)

debugging r

14
推荐指数
2
解决办法
6万
查看次数

标签 统计

r ×2

debugging ×1

geospatial ×1

gis ×1