こんにちは、私は JSL を初めて使用します。 以下を実現するコードを書こうとしています。
4 つの異なる JMP テーブルがあります。 テーブル 1 の列 1 の各行を、残りの 3 つのテーブルの列 1 と比較しています。
列 1 /テーブル 1 のエントリ/行がテーブル 2 の列 1 と一致する場合、テーブル 1/列 4 の行に文字 Say-Group1 が割り当てられます。
同様に、列 1/tale1 の行がテーブル 3 およびテーブル 4 の列 1 と一致する場合、テーブル 1/列 4 の文字「グループ 2」が割り当てられます。
列 4 を正常に作成し、表 2 と比較しました。
ただし、table1 /column1 の行をテーブル 3/column1 と比較するときに、Group2 で同じ列 4 を更新するのが難しいことがわかりました。
誰か助けてくれませんか?
※具体的には、既存の列を指定された条件の新しい文字列で更新するにはどうすればよいですか。そのために -new 列を使用することはできないためです。*
ありがとう
ジョディープ
こんにちは、ジム。
ご協力ありがとうございました。 修正がうまくいき、かなり簡素化されました。
ありがとう
ジョイディープ
ここでは、現在取り組んでいるスクリプトをさらに進めるために役立つ例をいくつか紹介します。
Names Default To Here( 1 );
dt1 = New Table( "Table 1", New Column( "Col A", character, values( {"A1", "A2", "A3"} ) ) );
dt2 = New Table( "Table 2", New Column( "Col B", character, values( {"B1", "B2", "B3"} ) ) );
dt3 = New Table( "Table 3", New Column( "Col C", character, values( {"C1", "C2", "C3"} ) ) );
If( dt1:Col A[1] == "A1",
dt2:Col B[3] = "Group 1"
);
If( dt2[2, 1] == "B2",
Data Table( "Table 1" ):Col A[2] = "Looking Good"
);
これは、コードを簡素化すると思われるスクリプトの変更です。
names default to here(1);
dt3 = Open( "\\Table 2" );
dt6 = Open( "Table 1" );
dt6 << New Column( "Group",
Character)
m = N Rows( dt6 );
n = N Rows( dt3 );
For( i = 1, i <= m, i++,;
For( j = 1, j <= n, j++,
If( Column( dt6, "Core ID" )[i] == (Column( dt3, "PC_ID" )[j]),
dt6:Group[i] = "Group 1"
);
);
);
dt6 << save( "Table1" );
//Close( dt3, nosave );
//Close( dt6, nosave );