将来使用するためのリストの列名の準備こんにちは、後で使用する変数に保存する列名のリストを取得して準備しようとしています。 問題は、 << Get Column Names() がすべてを文字列のリストとして返すことです。 以下は、各アイテム文字列の先頭に「 : 」を追加した方法と、これの潜在的な使用方法です。 さらに多くのことを行う必要があります。
names default to here(1);
dt = current data table();
col_names = dt << Get Column Names( ); // retrieves all col names
col_list = {}; // list for holding col names
// loop formats names in way usable to be called on as cols, not strings
for( i = 1 , i <= N items( col_names ), i++,
list_item = ":" || list_item;
Insert Into( col_list, list_item );
);
dt << Ungroup Scripts( col_list ); // example usage別の例は、このリストを次のように使用することです。
Fit Model( Y( col_list ) ....
私が得るもの: { "ColA", "ColB" }
私が欲しいもの: { :ColA, :ColB }
これについて複数の関連するスレッドを参照して見つけましたが、関数の入力としての列名の使用法は、私が遭遇したものではありません。何かアドバイス?
分析スクリプティングウィンドウズRe: 将来の使用のためにリストの列名を準備するやあ、
私はしばらく前に同じ問題を抱えていました。 解決策は簡単です。一連の列を返すには、リストを評価する必要があります。
dt << Ungroup Scripts( Eval (col_list ));
一番、
TS
Re: 将来の使用のためにリストの列名を準備する:colname として書式設定された列を使用する場合は、たとえば次のようにして取得できます。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
col_names = dt << Get Column Names(Continuous, "String");
// dt << Get Column Reference(); /* all references */
/* one option */
col_list1 = dt << Get Column Reference(col_names);
/* second option */
col_list2 = Transform Each({col_name}, col_names,
Name Expr(AsColumn(Column(dt, col_name))); /* Column() isnt necessary but makes it more robust */
);
show(col_list1, col_list2);
通常、それらを文字列として使用し、状況に応じて Column() または As Column() を使用します (いくつかの Name Expr() が混在しています)。
それを Eval() と組み合わせれば、列名の文字列のリストを頻繁に使用するだけで十分です。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Cities.jmp");
col_names = {"OZONE", "CO", "SO2", "NO", "PM10"};
//obj = dt << Cluster Variables(Y(:OZONE, :CO, :SO2, :NO, :PM10));
obj = dt << Cluster Variables(Y(Eval(col_names)));
col_list = Transform Each({col_name}, col_names,
Name Expr(AsColumn(Column(dt, col_name)));
);
obj = dt << Cluster Variables(Y(col_list)); /* wont work, see log for error */
/* Using Eval() and Eval Expr() */
cv_expr = EvalExpr(
obj = dt << Cluster Variables(Y(Expr(col_list)));
);
Eval(cv_expr);
/* using only Eval inside Y() should also work like earlier */
obj = dt << Cluster Variables(Y(Eval(col_list)));
Re: 将来の使用のためにリストの列名を準備する@ティエリー_S & @jthi - あなたがた両方に感謝します! eval() は私が探していたものでした! 列が式であることは理解していましたが、このコマンドを完全に忘れていました。