IF 语句错误
我正在使用 IF 语句,如下所示。 当我运行脚本时,它仅实现“打开”命令> 脚本甚至不进入 IF 循环。
我尝试使用“FOR EACH ROW”以及 IF 语句,如脚本 2 所示,但它引发以下错误
有什么建议么??
dt = Open ("C:\Users\NXF90574\Documents\NXP\Machine Learning\Script trial\fc data\fc_mcs11_evm_cluster_means.jmp");
IF( :"Ppk"n <= 2 ,
(
dt << Select where( :"Ppk"n <=2 );
dt_ppk = dt << subset (Output table("fc_mcs11_evm_cluster_means_low_ppk.jmp"), Selected Rows( 1 ), selected columns( 0 ));
dt_ppk << Save As("C:\Users\NXF90574\Documents\NXP\Machine Learning\Script trial\fc data\fc_mcs11_evm_cluster_means_low_ppk.jmp");
),
"PPk Good"
);dt = Open ("C:\Users\NXF90574\Documents\NXP\Machine Learning\Script trial\fc data\fc_mcs11_evm_cluster_means.jmp");
For each row(dt,
IF( :"Ppk"n <= 2 ,
(
dt << Select where( :"Ppk"n <=2 );
dt_ppk = dt << subset (Output table("fc_mcs11_evm_cluster_means_low_ppk.jmp"), Selected Rows( 1 ), selected columns( 0 ));
dt_ppk << Save As("C:\Users\NXF90574\Documents\NXP\Machine Learning\Script trial\fc data\fc_mcs11_evm_cluster_means_low_ppk.jmp");
),
"PPk Good"
)
); 自动化和脚本编写基础数据分析和建模回复: IF 语句错误嗨克雷格,
谢谢你的解释。 现在已经清楚了。
回复: IF 语句错误太感谢了。 这很好用。
回复: IF 语句错误If() 函数的第一个参数,
:"Ppk"n <= 2
进行评估并将列引用或表变量与数值进行比较。 这就是你想做的吗?
您是否有一列和一个表变量的名称均为 Ppk?
回复: IF 语句错误使用@jthi回答。 但为了解释发生了什么......
在原来的两个片段中,第一个失败,因为表中没有当前行,所以
:"Ppk"n <= 2
正在与缺失值进行比较;与缺失进行比较既不是 true 也不是 false,并且 if 的 true 和 false 子句不会执行(如果您不知道 JMP 中的缺失值,则会出现令人惊讶的结果。)
dt=open("$sample_data/big class.jmp");
dt:age==14
. <<< no row selected, result is missing
row()=5; dt:age==13
0 <<< LILLIE is 12
在第二个示例中,ForEachRow 确实使每一行一次成为当前行,因此避免了第一个问题。 基于无法保存在第 2 行消息,我很确定第一个子集表挂在文件名上,而由第 2 行生成的第二个子集想要保存到已在使用中的同一文件中。 (编辑:)关闭(dt_ppk)可能会解决这个问题,但它仍然会一遍又一遍地重新创建相同的文件。
回复: IF 语句错误使用 << Get RowsWhere 获取 Ppk <= 2 的行,然后使用 if 语句检查该列表中的项目是否大于 0
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Show(Row()); // Row() is inmitialize as 0 which isn't valid row number in JMP
// -> :name; // won't return anything useful
rows_of_interest = dt << Get Rows Where(:height <= 60);
If(N Items(rows_of_interest) > 0,
// perform actions
Show("PPK NOK")
,
Print("PPK OK");
);回复: IF 语句错误1]打开文件
2]检查列名 Ppk <=2 是否
a] 如果是,则选择 Ppk <=2 的行 - 将它们子集化并保存为另一个数据表
b] 如果否则显示“PPk good”
回复: IF 语句错误你想做什么?