回复:JMP 脚本:创建新列表如果您有 JMP16+,下面是使用 Filter Each 并使用 IsMissing 检查列是否仅包含缺失值的一个选项
Names Default To Here(1);
input_list = {"height", "Weight", "Age"};
dt = New Table("Untitled 6",
Add Rows(2),
Compress File When Saved(1),
New Column("_LimitsKey", Character, "Nominal", Set Values({"_UCL", "_LCL"})),
New Column("height", Numeric, "Continuous", Format("Best", 12), Set Values([54, 72])),
New Column("Weight", Numeric, "Continuous", Format("Best", 12), Set Values([80, 150])),
New Column("Age", Numeric, "Nominal", Format("", 16), Set Values([., .]))
);
new_list = Filter Each({list_val}, input_list,
found_values = Sum(!IsMissing(dt[0, list_val]));
found_values > 0;
);
show(new_list);
在 Filter Each 中添加调试打印可能有助于了解正在发生的事情。 例如
Show(dt[0, list_val]);
Show(IsMissing(dt[0, list_val]));
Show(!IsMissing(dt[0, list_val]));
show(found_values);
还有很多其他方法可以做到这一点(就像大多数时候使用 jmp 一样)
回复:JMP 脚本:创建新列表太好了,它运作良好! 非常感谢!
我想基于此实现一个 if 条件:
如果 Y 列包含在创建的 list_val 中,则...
我该如何写这个条件?
If (Eval(Y) <FONT color="#FF0000">!=</FONT> list_val,
...
我认为 != 没有适应......
任何想法?
回复:JMP 脚本:创建新列表使用包含()用 If() 检查是否从列表中找到项目
Contains({"a","b","c"}, "b");
或者你可以使用包含项目()
Contains Item("b", {"a","b","c"});回复:JMP 脚本:创建新列表感谢您的回复,
它应该可以工作,但 JMP 不喜欢 Eval(Y) 并且总是返回 0:
r=Contains(list_val, Eval(Y))
有关信息,Y 是这样制作的:
Y = concat(Y," (ppm)");
任何想法?
塞巴斯蒂安
回复:JMP 脚本:创建新列表我不确定您要做什么? 为什么要使用 Eval? 通常将列名作为字符串处理更容易,然后在需要时以某种方式将它们转换为列引用
回复:JMP 脚本:创建新列表我正在使用 Eval,因为它基于用户选择,然后是串联:
Y = concat(Y," (ppm)");
然后我需要确定是否可以在列表中找到此用户选择:
r=Contains(list_val, Eval(Y))
我也试过这个
r=Contains(list_val, Y)
但也总是返回 0...
JMP 脚本:创建新列表大家好,
我创建了一个名为 Y_list 的列表,其中包含变量名称。 我想从这个列表中创建一个新列表,其中仅包含包含数据集中的值的变量名称。
例子:
Y_list包含{“身高”,“体重”,“年龄”}
| _LimitsKey | 高度 | 重量 | 年龄 |
| _伦敦大学学院 | 54 | 80 | |
| _拼箱 | 72 | 150 | |
由于 Age 行中没有值,我想创建一个仅包含包含数据的变量名称的新列表:
Y_new_list ==> {"身高", "体重"}
但是,我不知道如何使用 JMP 脚本制作这个新列表。
您有什么建议可以帮助我吗?
多谢
塞巴斯蒂安
高级统计建模自动化和脚本编写