如何知道宏是否存在于' execute R ' ?

护符护符 成员职位:39大师
2018年11月编辑 帮助

你好,内容如下:

-需要将值作为宏传递,因为这似乎是web服务的唯一方法

-使用' execute R '来解析宏,因为它更灵活地处理字符串和大量的if…then…

第一个问题是如何在' execute R '中引用宏。我做了一些测试,自己找到了答案:

假设您将宏m1设置为x,那么每当您在' execute R '中写入%{m1}时,软件将执行只需将%{m1}替换为x

Untitled2.png

例如:

Rm_main = function()
{
X = 3
Z = %{m1} #解释为Z = x
打印(z) # 3

Xy = 3
Z = %{m1}y #解释为Z = xy
打印(z) # 3

}

如果要传递字符串'x',要么将宏m1设置为'x',

或者do z = '%{m1}' in ' execute R '。

现在第二个问题是,如果一些宏是可选的,如何测试它们是否存在于' execute R '中?

一个解决方案是,在web服务端修复它——如果不使用宏,总是将宏设置为NA。

但是我们可以处理省略的宏在'执行R '吗?(这样web服务端就可以传递尽可能多的宏)

这似乎行不通

Exists ('%{m1}') #被解释为Exists ('x'),无法测试宏是否存在

使用“试一试”

Rm_main = function()
{
Try (z <- '%{m1}')
print(存在(z))
}

当没有宏m1时,它仍然会抛出错误(即使使用' try ')

Untitled2.png

如何测试是否存在宏?

任何帮助都很感激。谢谢你~

标记:

最佳答案

  • MartinLiebigMartinLiebig 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家,大学教授职位:3287年RM数据科学家
    解决方案接受

    你好,

    在上下文中用默认值-1或其他值定义它们怎么样?您可以在R中测试if (%{myMacro!=-1)或其他东西

    编辑:另一种选择是在RM中使用Branch或Handle Exception进行处理。

    ~马丁

    - RapidMin乐鱼平台进入er数据科学服务主管
    德国多特蒙德

答案

  • David_ADavid_A 管理员、版主、员工、RMResearcher、会员职位:286RM研究

    你好,

    只是添加一些细节:

    在R脚本中出现异常的原因是因为总是先计算宏,然后由相应的操作符应用结果。

    否则,马丁的建议应该会非常有效。

  • 护符护符 成员职位:39大师

    好的技巧!谢谢马丁

登录注册置评。