2

我是 JMP 的新手,所以我仍然感觉良好。我想在 JMP 中创建一个名为“状态”的新列。此状态是字符,取决于“等级”列的值。如果“等级”列中条目的值为零,则“状态”列中条目的值应为“失败”。如果“等级”值大于 100,则“状态”列中的条目应为“无效”。如果 :Grade" 值小于 0,则 "Status" 值应该是 "invalid"。这应该很简单。但不知何故,我的脚本将无法正常工作:

dt = Current Data Table();
dt << New Column("Status", Character, Formula(
    If(:Name( "Grade" )==0, "fail",
       :Name( "Grade" )>100, "invalid",
       :Name( "Grade" )<0, "invalid")
));

你能帮我调试这个脚本吗?

4

1 回答 1

3

我刚刚尝试了脚本,公式对我有用。

这是一些更完整的 JSL,它还添加了“状态”所依赖的“等级”列。

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"
            )
        )
    );

也许问题是您还没有打开带有 Grade 列的数据表?这是一个使用公式和一些值创建全新表的脚本。

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,你用的是哪个版本?

于 2015-04-10T16:25:55.263 回答