我在JMP中很新,所以我仍然感觉到。 我想在JMP中创建一个名为“Status”的新列。此状态是字符,取决于“等级”列的值。如果“Grade”列中的条目值为零,则“Status”列中的条目值应为“fail”。如果“等级”值大于100,则“状态”列中的条目应为“无效”。如果:“等级”值小于0,则“状态”值应为“无效”。这应该很简单。但不知何故,我的脚本将不起作用:
dt = Current Data Table();
dt << New Column("Status", Character, Formula(
If(:Name( "Grade" )==0, "fail",
:Name( "Grade" )>100, "invalid",
:Name( "Grade" )<0, "invalid")
));
你能帮我调试这个脚本吗?
答案 0 :(得分:3)
我刚刚尝试了脚本,公式对我有用。
这是一些更完整的JSL,它还添加了“Status”所依赖的“Grade”列。
dt = Current Data Table();
dt << New Column( "Grade",
Numeric,
"Continuous",
Format( "Best", 12 ),
);
dt << New Column( "Status",
Character,
"Nominal",
Formula(
If(
:Grade == 0, "fail",
:Grade > 100, "invalid",
:Grade < 0, "invalid"
)
)
);
也许问题是您还没有使用成绩列打开数据表?这是一个用公式和一些值创建一个全新表格的脚本。
New Table( "Grading Test",
Add Rows( 7 ),
New Column( "Grade",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [45, 20, 100, 101, -4, 0, 120] )
),
New Column( "Status",
Character,
"Nominal",
Formula(
If(
:Grade == 0, "fail",
:Grade > 100, "invalid",
:Grade < 0, "invalid"
)
)
)
);
我通过交互式创建表并使用红色三角形菜单并选择“复制表脚本”来创建它。
我试过JMP 12.0,你使用哪个版本?