スタック出力テーブル名こんにちは、
スタック テーブルの情報の一部を動的に解析するスクリプトがあり、スタック テーブルを新しいデータ テーブルとして保存したいと考えています。
ystr1 = ":INFRASTRUCTURE 値、:INFRASTRUCTURE 値 1"
infr = "インフラストラクチャの価値";
データ = "PPT";
出力名 = "infra_updated.jmp";
gbStr = EvalInsert("dt << Stack(
列(
^ystr1^
)、
ソースラベル列(^infr^ )、
積み上げデータ列(^データ^)、
出力テーブル(^output_name^)
)"
);
Eval(Parse(gbStr));
次のエラーが発生します
名前が解決されていません: 'infra_updated.jmp' のアクセスまたは評価で infra_updated..jmp が見つかりました
EvalInsert が出力テーブルで機能しない理由がわかりません
自動化とスクリプトRe: スタック出力テーブル名出力テーブル()で指定された名前は引用符で囲む必要があります。したがって、output_name変数の文字列値に引用符を追加する必要があります。
ystr1 = ":INFRASTRUCTURE Value, :INFRASTRUCTURE Value 1";
infr = "Infrastructure Value";
data = "PPT";
output_name = "\!"infra_updated\!"";
gbStr = Eval Insert(
"dt << Stack(
columns(
^ystr1^
),
Source Label Column(^infr^ ),
Stacked Data Column(^data^),
Output Table(^output_name^ )
)"
);
Eval( Parse( gbStr ) );
Re: スタック出力テーブル名ジムはすでにスクリプトの何が間違っているのか理由を述べています。デバッグが非常に難しく、スクリプト エディターで構文が強調表示されないため、Eval(Parse()) 以外の方法を使用することをお勧めします。
Names Default To Here(1);
/*
dt = Open("$SAMPLE_DATA/Big Class.jmp");
cols = {"age", "height"};
*/
cols = {"INFRASTRUCTURE Value", "INFRASTRUCTURE Value 1"};
infr = "Infrastructure Value";
data = "PPT";
output_name = "infra_updated";
dt_stacked = dt << Stack(
Columns(Eval(cols)),
Source Label Column(infr),
Stacked Data Column(data),
Output Table(output_name)
);
Re: スタック出力テーブル名問題を説明していただきありがとうございます。Re: スタック出力テーブル名私は JSL スクリプトにかなり不慣れで、まだ慣れているところです。しかし、あなたのソリューションの方がデバッグが簡単そうに思えるのは同意します。ありがとうございます。Re: スタック出力テーブル名あなたの解決策を試しましたが、このエラーが表示されます。リストには正しい列名があります。
「'Stack' のアクセスまたは評価で列が見つかりません。引数が間違っています」
Re: スタック出力テーブル名私の場合、コードに残した例でテストすると、JMP18(および17)で正常に動作します。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
cols = {"age", "height"};
infr = "Infrastructure Value";
data = "PPT";
output_name = "infra_updated";
dt_stacked = dt << Stack(
Columns(Eval(cols)),
Source Label Column(infr),
Stacked Data Column(data),
Output Table(output_name)
);

列名が正しく記述され、リストに含まれていることを確認してください。