Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。451件4はじめまして、VisualBasic.net(4.0),Windows7上のアプリケーションからRの操作を試みています。Rとの接続にはCodePlex上で公開されているR.NET(https://rdotnet.codeplex.com/)を使用しています。※まずテストの為以下のようなコードを実行しました。Moduleこれを実行するとRDotNet.Closure型の変数obj2にはRのコンソール上単にcat入力した場合の結果、つまり関数catの情報が格納されているはずだと考えています。※次に例としてRコンソール上でcatを実行した結果を提示します。namespace:base>>※そしてサンプルコードの実行時のVisualStudioでClosureのウォッチ式の結果を提示します。eachで取り出すことが出来ました。それ以降の関数本体の定義部分がClosureクラスのどこに格納されているのかわかりません。ClosureクラスにはBodyプロパティがありましたが型がバイトコードになっていてよくわかりませんでした。どなたか関数の本体部分の格納箇所が分かる方、もしくはこういった場合VisualStudio上(2010)で確認方法をご存知の方がおられましたらお助け出来ませんでしょうか?よろしくお願いします。コメントありがとうございます。メソッドで発生しました。RのコンソールでfunctionBody(cat)を行うとBody部分が出力されるのは確認致しました。.AsFunction以外であれば実行自体は通るのでAsFunctionメソッドの問題かと思います。Objectなので、代わりにAsLanguageで取得することはできます。catとした時にみえる定義は以下のPrintLanguageEtcが出力しているものです。wch/r-sourcehttps://github.com/wch/r-source/blob/52c467ea1c4493abe2d1e3483fd0658873a0c629/src/main/print.c#L189RDotNetの実装を細かく追ったわけではないのですが、こちらも上記関数と同様にSEXPを扱うようなのでおそらくcatの関数定義自体はRDotNet側では保持していないでしょう。(式の評価はR側に投げるでしょうから)ではどうするかという点ですが2点思いつきました。コンソール出力を文字列に吐かせるengine.Evaluate("print(cat)")とした時、コンソール出力にRコンソールでの出力結果が表示されるかと思います。そこでコンソールのデフォルト出力を変更します。engine.Evaluate("as.character(functionBody(cat))").AsCharacterとすると、{以降(引数部分は取得できない)についてはarrに文字列配列(Rではベクトル)で格納されます。最終行の}が取得できないようで、完璧な解法にはならないかもしれません。他に良い関数などがあれば私も知りたいです。回答ありがとうございます。自分としては単に表示が出来れば問題ないので【1.コンソール出力を文字列に吐かせる】方法で検討していきたいと思います。フォームアプリケーションで実装する予定でしたので動作確認の為返信が遅れたこと申し訳ございません。Heliac2001様、3100様、ご示唆頂きありがとうございました。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。2008(無印)にて、開発環境のVBを毎度コンパイルさせたい0vb.netで作成したプログラムが強制終了されてしまう。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。