基於標準偏差的列單元格的有條件著色我需要根據某個單元格的值是否為列中的單元格上色:1 sigma之內,> 1 sigma但<2 sigma,> 2 sigma但<3 sigma和> 3 sigma,sigma是標準值列的偏差。
回复:基於標準偏差的列單元格的有條件著色該腳本並不完整或效率很高,但可以為您提供一個思路。
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
mu = Col Mean( :weight );
sd = Col Std Dev( :weight );
lo = mu - 3*sd;
hi = mu + 3*sd;
rows = dt << Get Rows Where( lo <= :weight <= hi );
:weight << Color Cells( "Red", rows );
lo = mu - 2*sd;
hi = mu + 2*sd;
rows = dt << Get Rows Where( lo <= :weight <= hi );
:weight << Color Cells( "Yellow", rows );
lo = mu - sd;
hi = mu + sd;
rows = dt << Get Rows Where( lo <= :weight <= hi );
:weight << Color Cells( "Green", rows );
如果行數很多,可以提高布爾測試的效率。
回复:基於標準偏差的列單元格的有條件著色謝謝!有用。回复:基於標準偏差的列單元格的有條件著色嗨,馬克,我還有一個與此相關的問題。在我的數據框中,我有10多個列,編輯和粘貼您提供的代碼很麻煩。我試圖自己創建一個for循環,但是它不起作用。您能提供一些建議嗎?謝謝!
col = dt <<獲取列名(字符串);
nc = nitems(col);
對於(i = 2,i <= nc,i ++,
mu = Col Mean(:Name(col [i]));
sd = Col Std Dev(:Name(col [i]));
lo = mu-3 * sd;
嗨=畝+ 3 * SD;
行= dt <<獲取行其中(lo <=:Name(col [i])<= hi);
:Name(col [i])<<彩色單元格(“紅色”,行);
行= dt <<獲取行其中(:Name(col [i]) hi);
:Name(col [i])<<彩色單元格(“紫色”,行);
lo = mu-2 * sd;
嗨=畝+ 2 * SD;
行= dt <<獲取行其中(lo <=:Name(col [i])<= hi);
:Name(col [i])<<彩色單元格(“黃色”,行);
lo = mu-sd;
嗨=畝+ SD;
行= dt <<獲取行其中(lo <=:Name(col [i])<= hi);
:Name(col [i])<<彩色單元格(“綠色”,行);
);