<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは皆さん
同じテーブルの複数の列をグループ化するのが最善の方法とは何かについて、私はいくらか助けが必要です。
私のテーブルには、次のような列があります。
Z 3、X 1、Z 2、X 3、X 4、Y 1、X 2、Y 2、Z 1
可能であれば、すべてのX、Y、Zを番号順にまとめます。これは私が扱っているものを要約したもので、通常は、必要なグループサイズを変えて数百列程度です。
最も簡単な方法は、列名に基づいてリストを作成し、次にloc()機能を使用してそれぞれの類似した列名の位置を返すことです。しかし、group()コマンドを使用するための最善の方法は何でしょうか。
この問題に関する手助けは大歓迎です。
ありがとう
MSさん、ありがとうございます。
フォローアップの質問... すべてのグループのリストをユーザーに提示し、リストからグループをもう1つ選択してから、選択したグループのみを含むサブセットテーブルをスクリプトに作成させる簡単な方法はありますか?
これを行うにはおそらくいくつかの方法があります。これは、グループ化が列名の最初の文字に基づいて行われるテーブルで機能するはずの1つのアイデアです。
//テーブル例
名前 = { Z 3 、 ×1 、 Z 2 、 ×3 、 ×4 、 Y 1 、 ×2 、 Y 2 、 Z 1 } ;
dt = 新しいテーブル ( "テスト" ) ;
にとって ( 私 = 1 、私 <= N個のアイテム ( 名前 ) 、私 ++、
dt << 新しいコラム ( チャー ( 名前 [ 私 ] ) 、数値 )
) ;
//テーブルの列をソートして列名の最初の文字のリストを作成する
dt << 名前順に並べ替え () ;
collist = dt << 列名を取得する ( ひも ) ;
にとって ( 私 = 1 、私 <= Nコル ( dt ) 、私 ++、
collist [ 私 ] = 左 ( collist [ 私 ] 、 1 )
) ;
//一意の列名のリストを作成する
col_type = 連想配列 ( collist ) << キーを入手 ;
//グループ列
にとって ( 私 = 1 、私 <= N個のアイテム ( col_type ) 、私 ++、
pos = Loc ( collist 、 col_type [ 私 ] ) ;
dt << グループ列 ( カラム ( pos [ 1 ] ) 、 N列 ( pos ) ) ;
) ;