如何使用R maptools库将Dataframe转换为SpatialGridDataFrame?我是Rpy2的新手,所以这可能是一个非常基本的问题。
R代码是: 坐标(DATAF)=〜X + Y
在Python中:
import rpy2
import rpy2.robjects as robjects
r = robjects.r
# Create a Test Dataframe
d = {'TEST': robjects.IntVector((221,412,332)), 'X': robjects.IntVector(('25', '31', '44')), 'Y': robjects.IntVector(('25', '35', '14'))}
dataf = robjects.r['data.frame'](**d)
r.library('maptools')
# Then i could not manage to write the above mentioned R-Code using the Rpy2 documentation
除了这个特殊的问题,我很乐意得到一些更一般的想法的反馈:我的最终目标是使用gstat库对空间数据进行回归克里金法。 R脚本工作正常,但我想从Python / Arcgis调用我的脚本。你怎么看待这个任务,这可以通过rpy2吗?
非常感谢! 理查德
答案 0 :(得分:0)
在某些情况下,Rpy2仍然无法动态(并自动)生成智能绑定。
对R代码的分析将有所帮助:
coordinates(dataf)=~X+Y
这可以更明确地写为:
dataf <- "coordinates<-"(dataf, formula("~X+Y"))
最后一个表达式使得Python / rpy2直截了当:
from rpy2.robjects.packages import importr
sp = importr('sp') # "coordinates<-()" is there
from rpy2.robjects import baseenv, Formula
maptools_set = baseenv.get('coordinates<-')
dataf = maptools_set(dataf, Formula(' ~ X + Y'))
要(明智地)明确“坐标&lt; - ”的来源,请使用:
maptools_set = getattr(sp, 'coordinates<-')