列を変数で並べ替えるこんにちは、
ある列の値を別の変数でソートしたものを含む新しい列を作成するにはどうすればよいでしょうか?
わかりやすくするための例: 名前と年齢の 2 つの行があるテーブルがある場合、名前を最年長から最年少の順に並べて表示する 3 行目を作成するにはどうすればよいでしょうか。
ありがとう!
Re: 列を変数でソートするこれを試してみてください:
names default to here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column(
"Sorted names by age",
Expression,
"None",
Formula( :Name[ Rank( :age << Get Values )][ Row() ] )
);
dt << New Column(
"Sorted names by height",
Expression,
"None",
Formula( :Name[ Rank( :height << Get Values )][ Row() ] )
);
大きなテーブルの場合は遅くなる可能性があることに注意してください。
より関連性の高い例を示すために編集されました。
Re: 列を変数でソートするExcel のように、データが列ではなく行にある場合は、分析する前にテーブルを転置する必要があります。 この例では、転置後、名前と年齢の 2 つの列が表示されます。 この時点では、他のユーザーが提案したように、テーブルを年齢列で並べ替えるだけの問題になります。
Re: 列を変数でソートするあなたが求めていることは、公式で簡単に実現できるものではありません(とにかく私が思いつくことはできます)。 これを対話的に行うのは比較的簡単です。テーブル -> 並べ替えテーブルを新しいテーブルに並べ替えてから、目的の列をコピーして元のテーブルに貼り付けます。
しかし、この質問は、あなたが実際に何をしようとしているのかについて、いくらかの興味を引き起こします。
一般に、データ テーブルの行は 1 つのエンティティ (単純な例では個々の生徒) の値のコレクションを表し、各行は他の行とは無関係です。 新しい列はその順序のコンテキストでのみ意味があるため、この新しい列 (例では名前) が分析にどのように役立つかわかりません。
この新しい列をどのように使用するかについてもう少し説明してもらえますか?
わかりやすくするための例: 名前と年齢の 2 つの行があるテーブルがある場合、名前を最年長から最年少の順に並べて表示する 3 行目を作成するにはどうすればよいでしょうか。
PS: 例では行と列を混同しているようです。 本当にそう思っていたのだと思います2 つの列があるテーブル元の質問に記載されているように、3 番目の列を作成したいと考えていました。 もし私が間違っていて、本当に行を意味しているのであれば、お知らせください。