リストからデータテーブルの行に変数をどのように割り当てますか?行数が可変のデータテーブルを使用しています。 定義するカテゴリの説明を「理由1」という新しい列に割り当てたいと思います。 この「理由1」列は、「名前」列が、私が定義したリストのいずれかの文字列のいずれかと一致する場合に割り当てられます。
'Name'行のエントリは、:: slitter、:: label、または::caseリストのエントリと完全に一致します。
異なる理由1のコードをすべての行に割り当ててから、各理由1に従ってデータを分析したいと思います。
dt1 << New Column("Reason 1", Character, "Nominal");
Nrows = N Rows(dt1);
For( i =1, i<=Nrows, i++
For( j=1, j<= N items( ::slitter ), j++,
If(:Name(i) == Eval(slitter(j)), :Reason 1(i) = "Slitter");
);
);
// %Slitter% description codes
slitter = {"TM2300-370",
"TM2300-380",
"TM2300-385",
"TM2300-390",
"TM2300-395",
"TM2300-400"};<BR /><BR />// %Label% description codes (8)<BR />::label = {"TM2300-020",<BR />"TM2300-025",<BR />"TM2300-070",<BR />"TM2300-075",<BR />"TM2300-080",<BR />"TM2300-085",<BR />"TM2300-090",<BR />"TM2300-095"};<BR /><BR />//%Case% description codes (7)<BR />::case = {"TM2300-030",<BR />"TM2300-035",<BR />"TM2300-040",<BR />"TM2300-045",<BR />"TM2300-050",<BR />"TM2300-055",<BR />"TM2300-060"};データ表スクリプティングウィンドウズRe:リストからデータテーブルの行に変数をどのように割り当てますか?いくつかの構文エラーがあり、Contains()関数を使用して置き換えることができる一致をチェックするための非効率的なForループがあります。同じ計算を行うための新しい数式列を作成する方法も追加しました。
Names Default To Here( 1 );
dt1=current data table();
dt1 << New Column( "Reason 1", Character, "Nominal" );
// %Slitter% description codes
slitter = {"TM2300-370", "TM2300-380", "TM2300-385", "TM2300-390", "TM2300-395", "TM2300-400"};
Nrows = N Rows( dt1 );
For( i = 1, i <= Nrows, i++,
If( Contains( slitter, :Name[i] ) == 1,
:Reason 1[i] = "Slitter"
)
);
// or
dt1 << New Column( "Reason 2",
character,
formula(
If( Row() == 1,
slitter = {"TM2300-370", "TM2300-380", "TM2300-385", "TM2300-390", "TM2300-395", "TM2300-400"}
);
If( Contains( slitter, :Name ) == 1,
:Reason 2 = "Slitter"
);
)
);Re:リストからデータテーブルの行に変数をどのように割り当てますか?getrowswhereおよびcontainsを使用する別の方法があります。ループは必要ありません。
dt = data table("Sample Data Set-1");
// %Slitter% description codes
slitter = {"TM2300-370", "TM2300-380", "TM2300-385", "TM2300-390", "TM2300-395", "TM2300-400"};
match_rows = dt << get rows where(contains(slitter, :Name));
dt:Reason 1[match_rows] = "Slitter";Re:リストからデータテーブルの行に変数をどのように割り当てますか?私の心は最初、私がやりたいことを完了するためにループに行きましたが、この代替ソリューションに感謝します!
これにより、データが希望どおりに分類されました。