要約機能私は仕事上、集計機能をよく使います。変数の度数分布が必要になることがよくあります。 これを行うには、Summarize( ex=By(dt:var), exCnt = Count(dt:var)) を使用します。 ex には変数の水準が含まれ、exCnt には度数分布が含まれます。 これは、var が数値の場合は正常に機能しますが、var が文字列の場合は機能しません。 私が使用する回避策は、ダミーの sequence(1, N Rows(dt), 1) 数値変数を作成し、この構文 Summarize( ex=By(dt:var), exCnt = Count(dt:dummy)) を実行することです。
これは正常に機能しますが、追加のダミー列を使用せずに必要なことを実現する方法があるかどうか疑問に思っていませんか?
心から、
マット
自動化とスクリプト作成データのブレンディングとクリーンアップRe: サマライズ機能おそらくプライベートの概要テーブルを使用し、値を取得してからそれを閉じると思います。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt_summary = dt << Summary(Group(:sex), Freq("None"), Weight("None"), Link to original data table(0), private);
ex = Column(dt_summary, 1) << get values;
exCnt = Column(dt_summary, 2) << get values;
Close(dt_summary, no save);
Show(ex, exCnt);Re: サマライズ機能@jthi 、 早速お返事をいただきありがとうございます。 これがダミー列を挿入する前に行っていたことでした。 理想的ではありませんが、悪くもありません。
Re: サマライズ機能持っているテーブルに count 列を直接追加することもできます。 連想配列で一意の値を取得すると機能すると思います
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
new_col = dt << New Column("Counts", Numeric, Continuous, << Set Each Value(
Col Number(:name, :name)
));
aa = Associative Array(:name << get values, :Counts << get values);
//dt << Delete Columns(new_col);
show(aa);
ただし、データによっては、単に概要テーブルを使用するよりも遅くなる可能性があります。
これに関するウィッシュ リスト項目を作成し、役立つ場合 (おそらくそうなる可能性が高い) 文字列 (first、last、mode、count...?) に提供する必要がある統計のリストを提供することもできます。 今もあるのがありますアーカイブされたただし、リクエストはそれほど適切に構造化されていません文字データのサマライズ/要約集計機能。 文字ベクトルをスカラーに連結 (by)しかし、それに対して自分のアイデアをコメントすることもできます。
脚本を書いたとき列の分析アドインでは、少なくとも要約テーブル、要約関数、分散プラットフォーム、行列演算を使用して、どれが最速であったかに応じてさまざまな統計を計算しました (Query() は試していないと思います)。
Re: サマライズ機能いくつかのアイデアを追加し、新しい願いを投稿しました。
概要と表作成: 文字列の集計オプションを追加
それが受け入れられることを祈りましょう:)
このようなオプションを使用すると、Tabulate が非常に便利になります。
追加の列と比較した大きな利点: 列は静的です。 集約レベルを定義する必要があります。その後、集約レベルが固定されます。
サマリー テーブルまたは表形式に存在する文字集計は、より動的です。
追加の構造に応じて、まったく異なる結果が得られる可能性があります。
1 行に 1 日がある場合は日ごとに集計され、月の場合は月ごとに集計されます。