我有这部分代码:
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(十六进制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.
答案 0 :(得分:0)
ERR_unsupportedCmd
指的是Rserve QAP1协议,即CMD_eval
之类的命令。您正在发送有效命令CMD_eval
,因此Rserve没有抱怨 - 错误在R中,因此适用常规R规则。就Rserve而言,R中止了评估。如果您希望返回R错误,则可以使用try({...}, silent=TRUE)
,并且您会收到包含错误字符串的类try-error
的对象的错误。