リスト内の各項目をforループを使用して空のリストにしますこんにちは 、
変数名を作成し、 for ループを使用してそれを空のリストとして割り当てるにはどうすればよいでしょうか?
例えば:
var_list = {"日", "今日", "雨", "平均"};
var_list をループすると次のようになります:
日 = {};
今日={};
雨={};
平均={};
自動化とスクリプトRe: for ループを使用してリスト内の各項目を空のリストにするそんなことはしないでください。連想配列のキーとして作成し、値として空のリストを与えることをお勧めします。
Names Default To Here(1);
var_list = {"day", "today", "rain", "mean"};
aa = Associative Array(var_list, Repeat({{}}, N Items(var_list)));Re: for ループを使用してリスト内の各項目を空のリストにするそれを実行するために for ループを使用しないことには何か否定的な理由がありますか?
また、後で計算を行って連想配列に値を追加し、連想配列をテーブルに変換したいと思います。以下は、その方法の例です。aa の値は {{}, {}, {"3", "2"}, {"A", "b"}} で正しいのですが、作成されたテーブルには :rain の値しかありません。これは、jmp のデフォルトの列データ型が numeric+continous であるためだと思います。
1) 列のデータ型を定義しなくても、連想配列をテーブルに変換するためのより良い/より速い方法、または強制的な方法はありますか?
keys = aa << get keys;
check= {"col_today", "col_rain"};
col_today = {"A", "b"};
col_rain = {"3","2"};
for (j=1, j<=nitems(check), j++,
for (i=1, i<=nitems(keys), i++,
if(word(-1, check[j], "_") == keys[i],
aa << Insert(keys[i],eval(parse(check[j])));
);
);
);
values1 = aa << get values;
tb = new table();
for (i = 1, i <= nitems(keys), i++,
tb << new column(char(keys[i]), , set values(values1[i]));
)
missing :today value because it is character
Re: for ループを使用してリスト内の各項目を空のリストにする動的に作成された変数名を扱おうとすると混乱する傾向があり、このタイプのスクリプトを支援するデータ構造があるため、動的な変数名に頼る必要はありません。
1つの選択肢は、JSONを介してJMPにデータ/モデリングタイプを決定させることです。
Names Default To Here(1);
aa = Associative Array();
aa["a"] = {"A", "B"};
aa["b"] = {"1", "2"};
aa["c"] = {1, 2};
dt = JSON To Data Table(As JSON Expr(aa), Guess(Stack(1)));
または、すべての列と文字を作成し、数値に変換できるものを変換します。
Re: for ループを使用してリスト内の各項目を空のリストにする私は Jarmo の意見に同意しますが、これはあなたが求めていることを実現すると思います:
Names Default To Here( 1 );
var_list = {"day", "today", "rain", "mean"};
var_list_list = {};
For Each( {var, i}, var_list, Insert Into( var_list_list, Parse( Eval Insert( "^var^ = {};" ) ) ) );
var_list_list;Re: for ループを使用してリスト内の各項目を空のリストにする変数を一度初期化するには、Eval List(var_list_list); を追加する必要があると思います。
このようなことをするのはとても悪い考えだと思うので、選択肢を与えたくもないのですが、それでも...ここに1つあります
もっと見る...
Names Default To Here(1);
var_list = {"day", "today", "rain", "mean"};
For Each({var, i}, var_list,
Eval(EvalExpr(Assign(Expr(Parse(var)), {})));
);
show(day, today, rain, mean);