13

myfunc.r などのファイルで定義された関数を呼び出す方法はありますか

---------------myfunc.r --------------
myfunc = function(){
  return(c(1,2,3,4,5,6,7,8,9,10))
}

getname = function(){
  return("chart title")
}

---- Python 
   How to call getname() here ?

どんな助けでも大歓迎ですか?

4

3 に答える 3

21

rpy2 には、オブジェクトをグローバル ワークスペースにダンプするよりもクリーンにするのに役立つ機能があります。

from rpy2.robjects.packages import STAP
# if rpy2 < 2.6.1 do:
# from rpy2.robjects.packages import SignatureTranslatedAnonymousPackage
# STAP = SignatureTranslatedAnonymousPackage
with open('myfunc.r', 'r') as f:
    string = f.read()
myfunc = STAP(string, "myfunc")

myfunc.myfuncR ファイル内のオブジェクトは、およびでアクセスできるようになりmyfunc.getnameました。

任意の R コードのパッケージとしてのインポートに関するドキュメントを確認してください。

于 2013-03-15T14:06:54.420 に答える
10

あなたはこのようなことをすることができます(ここのPythonコード)

import rpy2.robjects as robjects
robjects.r('''
       source('myfunc.r')
''')

 r_getname = robjects.globalenv['getname']

それからあなたはそれを呼びます

r_getname()
于 2013-03-14T20:50:39.763 に答える