總結功能我在工作過程中經常使用匯總功能。通常,我想要變量的頻率分佈。 為此,我使用 Summarize( ex=By(dt:var), exCnt = Count(dt:var))。 ex 包含變量的水平,exCnt 包含頻率分佈。 當 var 是數字時,這可以正常工作,但當 var 是字符串時,則不行。 我使用的解決方法是創建一個虛擬序列(1, N Rows(dt), 1) 數值變量並運行此語法 Summarize( ex=By(dt:var), exCnt = Count(dt:dummy))。
這工作正常,但想知道是否有一種方法可以在沒有額外的虛擬列的情況下完成我所需要的?
真摯地,
馬特
自動化和腳本編寫數據混合和清理回复:總結函數我很可能會使用私有匯總表,獲取值然後關閉它。
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);回复:總結函數@jthi , 感謝您的快速回复。 這就是我在插入虛擬列之前所做的事情。 它並不理想,但也不錯。
回复:總結函數您還可以直接將計數列添加到您擁有的表中。 我認為使用關聯數組獲取唯一值應該可行
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);
但根據數據,這可能比僅使用匯總表慢。
您還可以製作與此相關的願望清單項目,並提供應為字符列(第一個、最後一個、眾數、計數...?)提供的統計信息列表,如果這有用(並且很可能有用)。 有一個現在已經有了已歸檔,但請求的結構不是很好字符數據的 Sumerize/Summary 聚合函數。 將字符向量連接成標量 (by)但你也可以對此發表你的想法。
當我做腳本的時候分析列我至少使用了匯總表、匯總函數、分佈平台和矩陣運算來計算不同的統計數據,具體取決於哪個最快(我想我沒有嘗試 Query())。
回复:總結函數我添加了一些想法並發布了新的願望:
摘要和製表:為字符列添加聚合選項
讓我們祈禱它能被接受:)
有了這樣的選項,製表將變得非常有用!
與附加列相比,最大的好處是:該列是靜態的。 您必須定義聚合級別 - 然後它就被修復了。
存在於匯總表或表格中的字符聚合更加動態。
根據附加結構的不同,它可以產生完全不同的結果。
如果每行有一天,則按天聚合,如果是一個月,則按月聚合。