JMP テーブルの 2 つの列の値にインデックスを付けて、外部テーブルから値を選択するにはどうすればよいですか?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />私は非常に大きな JMP テーブルで作業しています。 外部の 2 次元の小さなテーブルから値を選択し、その値を新しい列に入れたいと考えています。 外部テーブルから値を選択するには、現在の JMP テーブルの 2 つの列の各行の値を、外部の小さなテーブルの 2 つの添え字として使用したいと思います。 誰かこれを手伝ってくれませんか?
ファイルが 2 つあります。 Big_data_matrix には、1 ~ 24 の値のみを持つことができる最初の列が含まれています。 列 2 は空です。 Values.jmp は、24 のエントリを持つ 1 つの列を含む小さなテーブルです。 Big_data_matrix の各行について、列 1 の値を読み取り、それが k と等しい場合は、値から k 番目のエントリ (k=1:24) を選択したいと思います。 jmp テーブルを選択し、Big_data_matrix の 2 列目に入力します。
私の元の Big_data_matrix は非常に大きい (>100 万行) ため、多くの異なる Big_data_matrix データ テーブルに対してこれを行う必要があります。
これはおそらく jsl で簡単に実行できますが、私には JSL の経験がまったくないため、可能であれば JMP 内でこれを実行したいと考えています。
ありがとう。
メッセージ編集者: Ranjan Sonalkar
Re: JMP テーブルの 2 つの列の値にインデックスを付けて、外部テーブルから値を選択するにはどうすればよいですか?MS
ありがとう。 シンプルな解決策でうまく機能します。
Re: JMP テーブルの 2 つの列の値にインデックスを付けて、外部テーブルから値を選択するにはどうすればよいですか?UPDATE ステートメントを使用すると、小さなテーブルの値で大きなテーブルを更新できます。JSL の例を次に示します。
dt_big =新しいテーブル( 「ビッグデータマトリックス」 、
行の追加( 2400 ) 、
新しい列( 「最初のコラム」 、数値、継続的、フォーマット( "最高" 、 12 ) )
) ;
dt_val =新しいテーブル( 「価値観」 、行の追加( 24 ) 、
新しい列( 「コラム1」 、キャラクター、公称、
設定値( { 「ああ」 、 「BB」 、 「CC」 、 「DD」 、 「ええ」 、 「FF」 、 「GG」 、 「へー」 、 「Ⅱ」 、 「JJ」 、 「KK」 、 「LL」 、
"んん" 、 「んん」 、 「○○」 、 「PP」 、 「QQ」 、 「RR」 、 「SS」 、 「TT」 、 「うう」 、 「VV」 、 「WW」 、 「○○」 } ) ) 、
新しい列( 「行番号」 、数値、継続的、フォーマット( "最高" 、 12 ) 、
設定値( [ 1 、 2 、 3 、 4 、 5 、 6 、 7 、 8 、 9 、 10 、 11 、 12 、 13 、 14 、 15 、 16 、 17 、 18 、 19 、 20 、
21 、 22 、 23 、 24 ] ) )
) ;
// 1 ~ 24 のランダムな整数を入力します
のために(私= 1 、私<= 2400 、私++、
カラム( dt_big 、 「最初のコラム」 )[私] =ラウンド(ランダムなユニフォーム( 1 、 24 ) 、 0 ) ;
) ;
dt_big <<アップデート(
と( dt_val ) 、
列の一致( :最初の列= :行番号) 、
更新テーブルから列を追加( :列 1 )
) ;
Re: JMP テーブルの 2 つの列の値にインデックスを付けて、外部テーブルから値を選択するにはどうすればよいですか?わかりました。インデックス付けは 1 次元です。 その場合は、Update を使用することをお勧めします。
まず、値 1 ~ 24 を含む 2 番目の列を Values.jmp に追加します。 次に、大きなテーブルをアクティブ化し、テーブル メニューで [更新] を選択します。 リストボックスで Values.jmp を選択し、「列の一致」にチェックを入れます。 次に、大きなテーブルの最初の列を、Values.jmp で新しく作成した ID 列と照合します。
次に、列 1 の数値に対応する値を持つ新しい列が大きなテーブルに追加されます (大きなテーブルの空の列 2 に小さなテーブルの値列と同じ名前が与えられている場合、この列には、新しいコラム)。
はい、簡単にスクリプト化できます。
Re: JMP テーブルの 2 つの列の値にインデックスを付けて、外部テーブルから値を選択するにはどうすればよいですか?ファイルが 2 つあります。 Big_data_matrix には、1 ~ 24 の値のみを持つことができる最初の列が含まれています。 列 2 は空です。 Values.jmp は、24 のエントリを持つ 1 つの列を含む小さなテーブルです。 Big_data_matrix の各行について、列 1 の値を読み取り、それが k と等しい場合は、値から k 番目のエントリ (k=1:24) を選択したいと思います。 jmp テーブルを選択し、Big_data_matrix の 2 列目に入力します。
私の元の Big_data_matrix は非常に大きい (>100 万行) ため、多くの異なる Big_data_matrix データ テーブルに対してこれを行う必要があります。
これはおそらく jsl で簡単に実行できますが、私には JSL の経験がまったくないため、可能であれば JMP 内でこれを実行したいと考えています。
ありがとう。
Re: JMP テーブルの 2 つの列の値にインデックスを付けて、外部テーブルから値を選択するにはどうすればよいですか?ここでは、jsl を使用して、メイン テーブルの 2D 座標に基づいて別のテーブルから値を取得する方法の例を示します。
//テーブルの例
dt1 =新しいテーブル( 「ビッグテーブル」 、
行の追加( 10 ) 、
新しい列( 「行インデックス」 、設定値([ 1 、 2 、 3 、 4 、 5 、 1 、 2 、 3 、 4 、 5 ])) 、
新しい列( 「列インデックス」 、設定値([ 1 、 2 、 3 、 1 、 2 、 3 、 1 、 2 、 3 、 1 ]))
) ;
dt2 =新しいテーブル( "小さいテーブル" 、
行の追加( 5 ) 、
新しい列( 「コラム1」 、設定値([ 1 、 2 、 3 、 4 、 5 ])) 、
新しい列( 「コラム2」 、設定値([ 6 、 7 、 8 、 9 、 10 ])) 、
新しい列( 「コラム3」 、設定値([ 11 、 12 、 13 、 14 、 15 ]))
) ;
// 2 つのインデックス列に対応する小さなテーブルから新しい列の値を追加します
dt1 <<新しい列( "データ" 、数値) ;
各行について( dt1 :データ=カラム( dt2 、評価( :列インデックス[]))[ :行インデックス]) ;
Re: JMP テーブルの 2 つの列の値にインデックスを付けて、外部テーブルから値を選択するにはどうすればよいですか?こんにちは、
テーブルの小さな例と希望する出力を提供していただけますか?これは、何を達成しようとしているのかを明確にするのに役立つはずです。
ありがとう。