JMP FOR循環使用summarize()和替換<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
我碰巧有一個問題。附件是數據表。
基本上,我想根據組的“vol”列計算mean,stddev和count。所以我首先使用“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 =計數(:vol_2),
vol_n_g3 =計數(:vol_3),
vol_n_g4 =計數(: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 ^)”))),
Eval(Parse(Eval Insert(“vol_n_g ^ i ^ = Count(:vol_ ^ i ^)”)))
)
);
但是這個“for loop”版本不起作用。我怎麼能修改它才能使它工作?
非常感謝!!
Re:帶有summarize()和替換的JMP FOR循環親愛的MS和伊恩@ JMP ,非常感謝你們的幫助!!我非常感激!/ CH
Re:帶有summarize()和替換的JMP FOR循環根據您希望代碼的一般程度以及接下來發生的情況,製作摘要表可能更方便:
NamesDefaultToHere ( 1 ) ;
DT1 = 數據表 ( “Raw_data_new” ) ;
//獲取dt中所有列的列表
COLS = DT1 << GetColumnNames ( “串” ) ;
//刪除我們不想總結的任何列
對於 ( C = NITEMS ( COLS ) , C > = 1 , C - ,- 如果 ( !包含 ( COLS [ C ] , “vol_” ) ,從......中去除 ( COLS , C )) ) ;
//製作一個匯總表
DT2 = DT1 << 摘要 ( 組 ( : 組 ) ,意思 ( EvalList ( COLS )) , STDDEV ( EvalList ( COLS )) , ñ ( EvalList ( COLS ))) ;
Re:帶有summarize()和替換的JMP FOR循環如果將整個summarize()表達式構建為字符串,它應該可以工作:
對於 ( 一世 = 0 ,一世 <= 6 ,一世 ++,
EVAL ( 解析 ( 評估插入 ( “總結(vol_g = By(:group),
vol_m_g ^ i ^ =平均值(:vol_ ^ i ^),
volsd_g ^ i ^ = Stddev(:vol_ ^ i ^),
vol_n_g ^ i ^ =計數(:vol_ ^ i ^))“
)))
) ;