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 は「.」です。
クリーンにプログラムし、LOCAL/GLOBAL 変数の問題を回避するために、{Default LOCAL} オプションを使用したいので、テーブルを出力したいと思います。
一般に、FUNCTION の返される結果を指定する方法がわかりません。
入力パラメータで RETURN() を試してみましたが、テーブルではなく単純なパラメータ (数値または文字列) でのみ機能するようです (JSL 構文リファレンスの 212 ページを参照)。
Function({引数}, <{ローカル変数}>, )>, スクリプト)
ご協力ありがとうございました!
よろしくお願いします。
アレックス
Re: FUNCTION から data_table を返すにはどうすればよいですか?PMRoz さん、こんにちは。
明確な説明をありがとう。
これがマニュアルで明確に説明されていればいいのですが:)
よろしくお願いします、
アレックス
Re: FUNCTION から data_table を返すにはどうすればよいですか?テーブルは開いたままです。
変数dt関数内で使用される はローカルであり、値を持ちません。
私の例では、呼び出し側プログラムは変数を使用します。 one_dt関数から結果を取得します。したがって、変数one_dt呼び出し側プログラムから見えます。
引数を指定すると、現在のデータテーブル[つまり現在のデータテーブル(dt) ] を指定すると、現在のデータ テーブルが指すものに設定されます。 dt 、「.」を返します。
Re: FUNCTION から data_table を返すにはどうすればよいですか?こんにちは
ピームローズ
すぐに答えてくれてありがとう!
確かに少し特殊ですが、慣れれば大丈夫です...:)
その間、私が試してみたところ、概要(すべての行)、または同様の「透過的」関数を実行したときも機能しました。
最後の行で次のような間違いを犯しました。
現在のデータテーブル(dt);
これで、実際に返されるのは現在のデータテーブルの「出力」であり、おそらく「.」であることがわかりました。したがって、それはおそらく私の間違いでした。 そうですか?
メインプログラムに戻った後、ローカル関数でファイルを開くとどうなりますか? どうやら、「ローカル」ですが、テーブルは開いたままになっていますか?
BR、
アレックス
Re: FUNCTION から data_table を返すにはどうすればよいですか?JMP 関数は return ステートメントを使用しません。むしろ、評価される最後の式が返されます。簡単な例を次に示します。
//------------------------------------------------ ------------------------------
/*
関数名: get_table
説明: ユーザーが選択したテーブル識別子を返します。
引数:
(なし)
*/
get_table =関数( {} 、
{デフォルトのローカル} 、
dt =開ける() ;
dt ;
) ;
// テストしてみる
one_dt = get_table () ;
技術的には、「dt;」だけの関数の行です。は冗長です。例として残しておきました。