ユーザー指定のリストに含まれる列を選択します<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />ユーザー指定のリストを使用して、リストに含まれるデータ列を選択する方法を見つけようとしています。ユーザーが指定したリストには、データ テーブルに存在する名前よりも多いまたは少ない名前が含まれる場合があります。たとえば、次のことを試してみましたが、うまく動作しないようです。あらゆるアイデアを歓迎いたします。ありがとう
dt = open("$SAMPLE_DATA/Big Class.jmp");
// データ列名のリストを取得します
Col_list = dt << 列名を取得 ( String );
// ユーザーが指定した列名
cc = { 性別、体重、テスト、新しい、古い };
for( i=1, i<=ncol( cc ), i++,
if(contains(col_list, cc )、
列 (dt、col_list) ) << 選択済みを設定 ( 1 )
)
);
Re: ユーザー指定のリストに含まれる列を選択するMS、
ご協力いただきありがとうございます。どの列をループするかについて考えていたことが、以前の悲しみの原因だったのだと今ではわかりました。ユーザーが指定したリストではなく、データ テーブル変数リストにリストされている列をループして選択すると仮定しました。ここでは常に何か新しいことを学んでいます。ありがとう。
Re: ユーザー指定のリストに含まれる列を選択する出力の詳細については調べていませんでした。 cc をループしているので、cc を参照する必要があります。 Col_list ではなく望ましい結果を得るために。
dt =開ける( "$SAMPLE_DATA/Big Class.jmp" ) ;
// データ列名のリストを取得します
列リスト= dt <<列名の取得(弦) ;
// ユーザーが指定した列名
cc = {セックス、重さ、テスト、新しい、年} ;
ために(私= 1 、私<= N 個のアイテム( cc ) 、私++、
もしも(含まれています(列リスト、シャア( cc [私】 ) ) 、
桁( dt 、シャア( cc [私】 ) ) <<選択したものを設定( 1 )
)
) ;
//これも機能します
ために(私= 1 、私<= N 個のアイテム( cc ) 、私++、
もしも(含まれています(列リスト、シャア( cc [私] ) ) 、
: ( cc [私]) <<選択したものを設定( 1 )
)
) ;
Re: ユーザー指定のリストに含まれる列を選択するこんにちは、MSさん
ヒントをありがとう。指定したコードは実行されますが、ユーザーが指定したリストにリストされている列だけが選択されるわけではありません。たとえば、上記のコードは、性別がユーザー指定のリストにない場合でも、最初の 2 つの列 (名前と性別) を選択します。私は、このリスト構成が実行され、cc にある列番号と一致する列番号をcol_list で見つけて選択していると考えていました。実際には名前ではなく cc 内の位置に基づいて列が選択されているようです。位置ではなく、一致した名前に従って列を選択することは可能ですか?
Re: ユーザー指定のリストに含まれる列を選択するもうすぐそこです。 リストには ncol() の代わりに N Items() を使用します。 また、2 つの項目を一致させるには、両方のデータ型が同じである必要があります。 したがって、ユーザーが指定したリストを文字列のリストとして提供するか、以下のように Char() を使用します。
dt =開ける( "$SAMPLE_DATA/Big Class.jmp" ) ;
// データ列名のリストを取得します
列リスト= dt <<列名の取得(弦) ;
// ユーザーが指定した列名
cc = {セックス、重さ、テスト、新しい、年} ;
ために(私= 1 、私<= N 個のアイテム( cc ) 、私++、
もしも(含まれています(列リスト、シャア( cc [私] ) ) 、
桁( dt 、列リスト[私】 ) <<選択したものを設定( 1 )
)
) ;