<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
我对 JMP 脚本完全陌生。
我正在尝试创建一个脚本,该脚本将转到表中的每个字符列,查找其所有值(PASS、FAIL 等),并使用分配的值(1、2、3)创建后缀为“_CODED”的新列, 4, 5) 基于上述的。
这是我现在拥有的脚本,它有效,但只考虑了一列。 有没有办法可以插入一个变量来代替该列名,以便计算所有列?
dt = 数据表("datatable.jmp");
cols = dt << 获取列名(字符); //列出所有字符列
For(i = 1, i <= N Items(cols), i++,
dt << 新列(列<< 获取姓名 || "_CODED",
数字,
“名义”,
格式(“最佳”,12),
公式(名称表达式(
If(:Name("Level1") == "PASS", 1, If(:Name("Level1") == "FAIL", 2, If(:Name("Level1") == "", 3, If(:Name("Level1") == "NOTTESTED", 4, If(:Name("Level1") == "IGNORE", 5, If(:Name("Level1") == "PASS|PASS" , 6, If(:Name("Level1") == "IGNORE|IGNORE", 7, If(:Name("Level1") == "NOTTESTED|NOTTESTED", 8))))))))
))
);
);
基本上,我想知道是否有办法让脚本通过表格中的每个字符列而不是仅仅1级. 我试过用科尔斯作为一个变量代替1级,但这会导致脚本无法运行,因为需要引号,或者脚本会查找名为“Level 1”的列,这不是目标。
我拿了一些其他脚本并尝试将它们应用到这个脚本中,所以如果有任何多余的地方,也请告诉我。 非常感谢。
这将做到:
新表( “例子” ,添加行( 6 ) ,
新列( “啊” ,特点,标称,
设定值( { “经过” , “经过” , “失败” , “忽视” , “” , “忽视” } )
) ,
新列( “bb” ,特点,标称,
设定值( { “通过|通过” , “忽略|忽略” , “经过” , “” , “失败” , “失败” } )
)
) ;
dt =数据表( “例子” ) ;
科尔斯= dt <<获取列名(特点) ; //列出所有字符列
为了(一世= 1 ,一世<= N 项(科尔斯) ,一世++,
one_col =科尔斯[一世] <<得到名字;
coded_col = one_col || “_编码” ;
col_expr =评估插入(
"\[ dt << 新列("^coded_col^", Numeric, "Nominal",
格式(“最佳”,12),公式(
if (:name("^one_col^") == "PASS", 1,
:name("^one_col^") == "失败", 2,
:name("^one_col^") == "", 3,
:name("^one_col^") == "未测试", 4,
:name("^one_col^") == "忽略", 5,
:name("^one_col^") == "PASS|PASS", 6,
:name("^one_col^") == "忽略|忽略", 7,
:Name("^one_col^") == "未测试|未测试", 8;
);
)
);]\" ) ;
评估(解析( col_expr ))
) ;