0

私はコードのこの部分を持っています:

Rconnection *rc = NULL;
rc = new Rconnection();
int stat=rc->connect();

Rmessage *msg=new Rmessage();
Rmessage *cmdMessage=new Rmessage(CMD_eval, "sumwe(2,3)");
int res=rc->request(msg,cmdMessage);
int r = CMD_STAT(msg->head.cmd);

ご存知のとおり、間違ったR関数名sumweを指定しました。このために、「エラー:関数「sumwe」が見つかりませんでした」と言ってRserveコンソールにアクセスしました。

しかし、rの値をチェックしている間、つまりCMD_STAT(msg->head.cmd);127(hex 7f)を取得しています。私は期待している#define ERR_unsupportedCmd 0x49 /* unsupported command */、または #define ERR_unknownCmd 0x4a /* unknown command */-違い。

私が間違っていることを助けてください。

詳細:

R version 2.15.0 (2012-03-30)
Rserve version  0.6-8 (338)
Platform Windows(32bit). Rserve running locally.
4

1 に答える 1

0

ERR_unsupportedCmdRserve QAP1 プロトコル、つまり のようなコマンドを指しますCMD_eval。有効なコマンドを送信しているCMD_evalため、Rserve は文句を言いません。エラーは R にあるため、通常の R ルールが適用されます。Rserve に関する限り、R は評価を中止しました。R エラーを元に戻したい場合は、エラー文字列を含むtry({...}, silent=TRUE)クラスのオブジェクトとしてエラーを取得できtry-errorます。

于 2012-05-04T00:13:26.357 に答える