如何從 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;”是多餘的。我把它留作例子。