<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、みんな、
たまたま質問があります。付属のデータテーブルです。
基本的に、グループごとに "vol"列に基づいて平均、標準偏差、および件数を計算します。そこで私は最初に "Summarize()"関数を使って以下のスクリプトを書きました:
要約すると(vol_g = By(:group)、
vol_m_g0 =平均値(:vol_0)
vol_m_g1 =平均値(:vol_1)
vol_m_g2 =平均値(:vol_2)、
vol_m_g3 =平均値(:vol_3)
vol_m_g4 =平均値(:vol_4)、
vol_m_g5 =平均値(:vol_5)
vol_m_g6 =平均値(:vol_6)
vol_sd_g0 = stddev(:vol_0)、
vol_sd_g1 = stddev(:vol_1)、
vol_sd_g2 = stddev(:vol_2)、
vol_sd_g3 = stddev(:vol_3)、
vol_sd_g4 = stddev(:vol_4)、
vol_sd_g5 = stddev(:vol_5)、
vol_sd_g6 = stddev(:vol_6)、
vol_n_g0 =カウント(:vol_0)、
vol_n_g1 =カウント(:vol_1)、
vol_n_g2 = Count(:vol_2)、
vol_n_g3 =カウント(:vol_3)、
vol_n_g4 = Count(:vol_4)、
vol_n_g5 =カウント(:vol_5)、
vol_n_g6 =カウント(:vol_6)
;
しかし長すぎるので、代わりに以下の "for"ループを使用したいと思います。
(i = 0、i <= 6、i ++、
要約すると(vol_g = By(:group)、
Eval(Parse(Eval Insert( "vol_m_g ^ i ^ = Mean(:vol_ ^ i ^)")))、)
Eval(Parse(Eval Insert( "volsd_g ^ i ^ = Stddev(:vol_ ^ i ^)")))、
評価(解析(評価挿入( "vol_n_g ^ i ^ =カウント(:vol_ ^ i ^)"))))
)
;
しかし、この「forループ」バージョンは機能しません。それを機能させるためにどのようにそれを修正できますか?
どうもありがとう!!
MS様イアン@ JMP ご協力ありがとうございました。とても感謝しています。/ CH
コードをどの程度一般的にしたいのか、そして次に何が起きるのかによって、要約テーブルを作るほうが便利かもしれません。
NamesDefaultToHere ( 1 ) ;
dt1 = データ表 ( "Raw_data_new" ) ;
// dtの全カラムのリストを取得する
コルズ = dt1 << GetColumnNames ( 「文字列」 ) ;
//要約したくない列はすべて削除します
にとって ( c = NItems ( コルズ ) 、 c > = 1 、 c - 、もし ( !含む ( コルズ [ c ] 、 "vol_" ) 、から削除 ( コルズ 、 c )) ) ;
//サマリーテーブルを作る
dt2 = dt1 << 概要 ( グループ ( : グループ ) 、平均 ( 評価リスト ( コルズ )) 、 StdDev ( 評価リスト ( コルズ )) 、 N ( 評価リスト ( コルズ ))) ;
summaryize()式全体を文字列として構築すればうまくいきます。
にとって ( 私 = 0 、私 <= 6 、私 ++、
評価 ( 解析する ( 評価挿入 ( "要約(vol_g = By(:group)、
vol_m_g ^ i ^ = Mean(:vol_ ^ i ^)、
volsd_g ^ i ^ = Stddev(:vol_ ^ i ^)、
vol_n_g ^ i ^ = Count(:vol_ ^ i ^)) "
)))
) ;