0

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 経由で可能ですか?

どうもありがとう!リチャード

4

1 に答える 1

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'))

「coordinates<-」がどこから来ているかについて(賢明に)明示するには、次を使用します。

maptools_set = getattr(sp, 'coordinates<-')
于 2012-05-29T07:31:08.967 に答える