你好,我是 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 );