如何从 FUNCTION 返回 data_table ?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />脚本
你好,
我是 JMP/SAS 脚本语言的一个相对较新的用户,只使用过其他“标准”语言,如 C、VBA、PASCAL 等......所以也许我的问题很明显......
我不知道如何从函数中干净地返回 TABLE 结果。
如果我不使用 DEFAULT LOCAL 选项,当然,如果我在 FUNCTION 中使用表的名称,则表会返回,但是当我尝试执行类似操作时
d_result= MyFunction(输入1,输入2;输入3);变量 d_result 是“.”
我想使用 {Default LOCAL} 选项来干净地编程并避免 LOCAL/GLOBAL 变量出现问题,因此我想输出该表。
一般来说,我不明白如何指定 FUNCTION 的返回结果。
我尝试在输入参数中使用 RETURN() ,但它似乎只能使用简单的参数(数字或字符串),而不是表格(请参阅 JSL 语法参考的第 212 页):
函数({参数},<{局部变量}>,)>,脚本)
非常感谢你的帮助 !!!
此致。
亚历克斯
回复:如何从 FUNCTION 返回 data_table ?嗨,PMRoz,
非常感谢您的清晰解释。
我希望手册中对此有清楚的解释:)
此致,
亚历克斯
回复:如何从 FUNCTION 返回 data_table ?桌子保持开放状态。
变量dt在函数内部使用的 是局部的,不再具有值。
在我的示例中,调用程序使用变量一个_dt从函数中获取结果。因此变量一个_dt对调用程序可见。
当你提供一个论点当前数据表[IE当前数据表(dt) ],它将当前数据表设置为指向的任何内容dt ,并返回“.”。
回复:如何从 FUNCTION 返回 data_table ?你好
PM罗兹,
谢谢你这么快回复!
它确实有点特别,但一用就习惯了......:)
我同时尝试过,当我执行摘要(所有行)或类似的“透明”功能时,它也有效。
当我在最后一行时我犯了一个错误:
当前数据表(dt);
现在我明白,实际上返回的是当前数据表的“输出”,可能是“.”,所以这可能是我的错误。 是对的吗?
返回主程序后,在本地函数中打开文件会发生什么情况? 显然桌子保持开放状态,尽管它是“本地”的?
BR,
亚历克斯
回复:如何从 FUNCTION 返回 data_table ?JMP 函数不使用 return 语句。相反,最后计算的表达式就是返回的表达式。这是一个简单的例子:
//------------------------------------------------ ------------------------------------------
/*
函数名称:get_table
描述:返回用户选择的表标识符
论据:
(没有任何)
*/
获取表=功能( {} ,
{默认本地} ,
dt =打开() ;
dt ;
) ;
//测试一下
一个_dt =获取表() ;
从技术上讲,该函数的行只有“dt;”是多余的。我把它留作例子。