Col Sumが間違ったデータテーブルを参照しています私は自分のスクリプトで2つのデータテーブルを開いています。たとえば、dt1とdt2です。それらはこの順番で開かれています。dt1には、ステータス変数を含む列があります。"1"以外は異常値の種類を表します。dt1の異常値の数を数えたい。これは私が持っているものです...
n_out = Col Sum(If( dt1:STATUS == "1", 0, 1));
しかしこれはうまくいっていないようです。最近のコードはdt2を参照しようとしているようです。dt1をクリックしてウィンドウを前面に表示してからコードをもう一度実行すると、うまくいきます。なぜ私のdt1:STATUS参照が機能しないのですか?
ご協力いただきありがとうございます。
再:Col Sumは間違ったデータテーブルを参照していますこのコードは正しい値9も生成します。
Names Default to Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA/Fitness.jmp" );
dt1 << New Column( "Outlier", Formula( :height > 65 ) );
n outliers = Col Sum( dt1:Outlier );
ここでは、式を使って外れ値をテストする式を持つ別のデータ列を使用しました。この結果は私にそれを教えてコルサム() 式ではなく、特にデータ列で機能することを意図していない場合があります。(ヒント、ヒント:COL SUM()。)データ列参照ではなく、異常値検定に式を使用したときに4の値がどこから来たのかわかりません。
再:Col Sumは間違ったデータテーブルを参照しています何故なの?
再:Col Sumは間違ったデータテーブルを参照していますOK... OK.... 次の例では、9がカウントされました。
名前のデフォルトはここにあります(1)。
dt1 = Open( "$ SAMPLE_DATA / Big Class.jmp");
dt2 = Open( "$ SAMPLE_DATA / Fitness.jmp");
60を超えるn =合計((dt1:高さ<行列として取得)> 65)。
これは行列への変換が解決策であることを意味していますか?
再:Col Sumは間違ったデータテーブルを参照しています同じ問題... 私のコードはありますか:
名前のデフォルトはここにあります(1)。
dt1 = Open( "$ SAMPLE_DATA / Big Class.jmp");
dt2 = Open( "$ SAMPLE_DATA / Fitness.jmp");
num_tall = Col Sum(dt1:高さ> 65)。
show(num_tall);
あなたのシステムでnum_tall = 9を生成しますか?
それがそれと関係があるのであれば私はJMP 13を使用しています。
再:Col Sumは間違ったデータテーブルを参照しています今日の私のダム質問:あなたがJMPを終了してそれを再開するとどうなりますか?
再:Col Sumは間違ったデータテーブルを参照していますいい案... だから私は次のコードを実行しました:
名前のデフォルトはここにあります(1)。
dt1 = Open( "$ SAMPLE_DATA / Big Class.jmp");
dt2 = Open( "$ SAMPLE_DATA / Fitness.jmp");
num_tall = Col Sum(dt1:高さ> 65)。
show(num_tall);
これは出力です。
名前のデフォルトはここにあります(1)。
dt1 = Open( "$ SAMPLE_DATA / Big Class.jmp");
dt2 = Open( "$ SAMPLE_DATA / Fitness.jmp");
num_tall = Col Sum(dt1:高さ> 65)。
show(num_tall);
/ *:
num_tall = 4;
次に、Big Classテーブルをクリックすると(最前面に表示されます)、次のようになります。
num_tall = Col Sum(dt1:高さ> 65)。
show(num_tall);
/ *:
num_tall = 9;
これは正しい答えです。
設定に問題があるのでしょうか。それともJSLの設計方法にすぎませんか。
再:Col Sumは間違ったデータテーブルを参照しています代わりにこのコードを試すこともできます。
Names Default to Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA/Fitness.jmp" );
n ht over 60 = Sum( (Column( dt1, 4 ) << Get As Matrix) > 60 );
再:Col Sumは間違ったデータテーブルを参照しています元の問題から離れて、もっと簡単な方法を試してみませんか。たとえば、各データテーブルの値が異なる場合は、1つの場所だけを参照してどの値が返されるのかを確認します。例えば、
Names Default to Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA/Fitness.jmp" );
value = Column( dt1, 4 )[2]; // second row of :height in Big Class?
Show( value );
うまくいっているようです。
再:Col Sumは間違ったデータテーブルを参照していますお返事ありがとうございます。
私は同じ問題を抱えています。
私は特定の例に対する答えがn_out = 3であることを知っています。私の画面では、最初に開かれたときの背景にdt1が表示され、それを超えるとdt2が表示されます。このコードを実行すると、n_out = 0となります。しかし、テーブルdt1をクリックして(画面の最前面に移動させて)もう一度コードを実行すると、n_out = 3となります。
これは私が問題が間違ったテーブルを参照することにあると思う理由です。
再:Col Sumは間違ったデータテーブルを参照しています私も次のことを試しました:
n_out = Col Sum(NOT(dt1:STATUS == "1"))
それでもまだうまくいきません。
特定の例に対する答えは3であることを私は知っています。私の画面では、最初に開かれたときの背景にdt1が表示され、それを超えるとdt2が表示されます。このコードを実行すると、n_out = 0となります。しかし、テーブルdt1をクリックして(画面の最前面に移動させて)もう一度コードを実行すると、n_out = 3となります。
これは私が問題が間違ったテーブルを参照することにあると思う理由です。
再:Col Sumは間違ったデータテーブルを参照していますこのフォームを試して、うまくいくかどうか確認してください
n_out = Col Sum( dt1:STATUS != "1");
再:Col Sumは間違ったデータテーブルを参照していますあなたの説明によると、それは間違いなく起こってはいけないようです。 私はあなたのコードには問題を見ません。 JMP技術サポートに連絡するのに良い時期かもしれません。