行列をその場で評価する方法<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />私はこの問題に対する簡単な答えがあると確信していますが、私はそれを理解することができません。 距離行列を使用して2つのオブジェクト間の距離を計算しようとしています。 次のJSLコードを動作させることができません。
dt = Open(dist matrix.jmp);
m = dt << Matrix()としてすべての列を取得;
dt2 = Open(students.jmp);
col =列( "都道府県番号");
B = col << Getasmatrix;
n = nrow(dt2)。
a = j(n、1,0)。
(i = 1、i <= n、i ++、aに対して) = m [b 、4]);
見せる(a);
m [、]を評価するときにエラーが出ます。 私はEvalと他のことを試したが、うまくいかない。
誰も手伝ってくれる?
再:どのようにその場で行列を評価するには?データセットをExcelに保存し、それをJMPに戻しました。 行列に変換されたときのデータセットは正しい順序になっています。 JMPで列を再作成したときに、列のデフォルトの順序をリセットしておく必要があります。 だから今すべてがうまくいきます。 助けてくれてありがとう。
再:どのようにその場で行列を評価するには?サンプルデータセットを手に入れましたか?私は一つ持っていて次のコードを試してみました、そしてそれは正しい順序を持っていました。 文字値を '1'に置き換えましたが、これは私が期待していたことと同じです。
dt =現在のデータテーブル()。
m = dt << Matrix()としてすべての列を取得;
show(m);
再:どのようにその場で行列を評価するには?私は主なエラーが何であるかを把握しました。 一部の行には欠損値があり、JMPが不足している添え字を評価しようとしたときに爆弾が発生しました。 だから私は次のコードを使用しました:
にとって ( 私 = 1 、私 <= n 、私 ++、もし ((( ではない ( 不足している ( A [ 私 ])) 、 C [ 私 ] = メートル [ A [ 私 ] 、 8 ] 、 C [ 私 ] = 。 )) ;
それはうまくいきます。
今私の唯一の問題は私が使用するときです。
m = dt << Matrix()としてすべての列を取得;
後続の行列mは、データセット内にある順序ではありません。 だから元の順序を維持する方法を見つけようとしています。 何か案は?