我正在嘗試創建一個類對象,其中包含我認為在處理分發報告時有用的方法和屬性。
當我不嘗試過濾報告或數據表時,我的一切都按照我希望的方式工作,但當我嘗試過濾報告時,我開始遇到問題。
主要問題是在我過濾報告後,當我進入顯示樹來提取和保存它們不反映過濾器的值時。例如,如果我正在分析的列在過濾前的平均值為 132,過濾後的平均值為 134,則分佈報告將顯示平均值 134,但顯示樹將輸出 132。
Make Distribution = Method({filter={}},
Try(
Column(dt,col) << Set Name("Data");
show(NItems(filter)!=0);
If(
NItems(filter)!=0,
dist = dt << Distribution(
Automatic Recalc( 1 ),
Continuous Distribution( Column( :Data ),
Local Data Filter(
Add Filter(Where(:Data >= filter[0] & :Data<= filter[1]))
)
),
),
dist = dt << Distribution(Automatic Recalc(1),Continuous Distribution(Column(:Data)));
);
rdist = dist << Report;
show(rdist[1]);
tmp = rdist["Summary Statistics"][NumberColBox(1)] << Get As Matrix;
mean = tmp[1];
stdev = tmp[2];
std_err_mean = tmp[3];
up_95_mean = tmp[4];
low_95_mean = tmp[5];
N = tmp[6];
dist_graph = rdist[OutlineBox("Data")][PictureBox(1)];
Column(dt,"Data") << Set Name(col);
,
Throw("Error in Making Distribution: "||char(exception_msg))
);
);上面是我製作分佈報告、添加本地過濾器並從顯示樹中提取匯總統計值的方法。
我還嘗試使用“選擇位置”和“刪除行”例程,但在下面的方法內部,“選擇位置”沒有執行任何操作。
Filter Table = Method({filter},
dt << Select Where(Column(dt,col)<FILTER>filter[2]);
dt << Delete Rows;
);</FILTER>我這樣做是因為我經常需要從分佈報告中獲取各種匯總統計數據或元素,這使其語法簡單且易於更改。
我已將完整課程附加到這篇文章中。
任何幫助,將不勝感激。
你好,
我做出回應是因為我在 JMP 13 中看到了類似的行為。當我有附加的數據過濾器時,我可以獲取列的值並將其設置為列,並執行表排序和表摘要操作,但通過行選擇獲得隨機結果。 我的解決方法是將列值獲取為向量(分析需要數字列)並使用 loc() 函數。 然後進行計算並相應更新表值。
JMP 支持已收到通知。 我會標記他們查看這篇博文,因為您描述的行為似乎是相同的。
@awsmagala ,
我建議在應用平台之後在數據表的構建之間引入一個小的延遲,使用等待。
Wait(0.1);