2

私は JMP を始めたばかりなので、まだ慣れていません。JMPで「ステータス」という新しい列を作成したいと考えています。このステータスは性格であり、列「Grade」の値に依存します。「グレード」列のエントリの値がゼロの場合、「ステータス」列のエントリの値は「不合格」になります。「グレード」の値が 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 に答える