你好,我是 JSL 的新手。 我正在嘗試編寫代碼來實現以下目標。
我有 4 個不同的 JMP 表。 我將表 1 第 1 列的每一行與其餘三個表的第 1 列進行比較。
如果 Coulmn 1 /table 1 的任何條目/行與 Table 2 的第 1 列匹配,則將字符 say-Group1 分配給表 1/第 4 列中的行。
類似地,如果列 1/tale1 的任何行與表 3 和表 4 的列 1 匹配,則它會在表 1/列 4 中分配一個字符,例如組 2。
在與表 2 進行比較後,我成功創建了第 4 列。
然而,當我將 table1 /column1 的行與 table 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 );