計數唯一嗨,我有一張包含如下交易數據的表格。
交易 ID、個人 ID、產品
1、一、蘋果
2、一、橙
3、b、蘋果
4、b、香蕉
5、c、橙
我想用表格而不是使用腳本來計算產品有多少唯一的個人 ID。
有誰知道如何做到這一點?
我可以先使用 individualID 和 product 做匯總表,然後對其進行製表以按產品獲取 uniqueID 計數,但這是 2 個步驟。 想知道有沒有一種方法可以讓我們只用一個步驟就可以做到這一點,因為我經常需要為許多不同的群體這樣做?
謝謝!
分析數據表回复:計數唯一非常感謝。 這是生成用於計算唯一值和比例的表格結果的最有效方法。
回复:計數唯一還有另一種選擇:您還可以在製表函數中創建一個匯總列:




Names default to here(1);
dt = Open("$Sample_data/big class.jmp");
dt << Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table(
Analysis Columns(
Transform Column( "Age Count", Formula( Col Sum( 1, :age ) ) )
),
Statistics( Mean )
),
Row Table( Grouping Columns( :age ) )
)
);
回复:計數唯一非常感謝布雷迪! 這些真的是很棒的知識,我會練習每一個! 真的很感謝幫助!回复:計數唯一
運行上述查詢後,我可以看到附加的 3 個綠色三角形。 要使用更新的數據重新運行相同的查詢,我應該使用哪些三角形?
這取決於... “源”腳本在運行時會生成一個新表,而“從數據庫更新”腳本會刷新當前表(即,不創建新表。)
注意:JMP 數據表的一個方便功能是,如果您將腳本命名為“打開時”,則只要打開包含它的 JMP 數據表,它就會運行。 因此,您可以將“從數據庫更新”腳本重命名為“打開時”,以確保始終以更新的結果開始。 當然,這個腳本仍然可以隨時運行,只需單擊綠色箭頭即可。
如果我有許多不同的查詢,如何將它們存儲在一個地方,然後當我獲得最新數據時,再次對其應用查詢?
有幾種方法可以解決這個問題,我將提供一些最簡單的方法。
- 如果您有沒有衍生依賴的簡單查詢,您可以使用上面提到的“打開時”技巧。 (即,不需要在任何其他查詢之前運行單個查詢,以獲得其表的正確結果)
- 您可以通過將每個腳本複制+粘貼到其中來創建“主”腳本。 順序可能重要也可能不重要,具體取決於您的情況,您可能需要在腳本中插入控件以確保在繼續之前完成先前查詢的結果。
在實踐中我不必做太多這樣的事情,因此在新的討論中向社區提出這個問題可能是值得的,以了解“該領域”實際上最流行的方法是什麼,以及為什麼。
乾杯,
布雷迪
回复:計數唯一謝謝! 我剛試過,它有效!從沒想過我可以使用 col sum 來實現這一點。 聰明的!回复:計數唯一謝謝! 這也是一種快速又好用的方法!回复:計數唯一非常感謝布雷迪!
從來沒有使用過這個查詢生成器,它超級強大!
我只是嘗試獲取 2 個源表並進行查詢,它非常聰明,它自己匹配個人 ID 並返回正確的唯一計數。
查詢生成器的 2 個問題:
1. 運行上述查詢後,我可以看到附加的 3 個綠色三角形。 要使用更新的數據重新運行相同的查詢,我應該使用哪些三角形?
2. 如果我有許多不同的查詢,我如何將它們存儲在一個地方,然後當我獲得最新數據時,再次應用查詢?
回复:計數唯一另一種選擇是在原始數據表中使用帶有“by”變量的 col sum() 函數的列來計算它,但引用數字 1 而不是列,這會將其轉換為“count”函數。如果您需要表格或表格格式,則可以使用平均值或中位數製作表格:

回复:計數唯一似乎 Tabulate 平台在處理 Character 數據類型時表現不佳。 您可以將 individualID 更改為數字(重新編碼或創建公式到新列),然後使用製表:

回复:計數唯一我不確定如何使用 Tabulate 來執行此操作,但如果您願意使用其他平台,那麼使用 JMP Query Builder 很容易做到這一點:
1) 從主菜單中選擇表 > JMP 查詢構建器。
2) 在隨後出現的窗口中,單擊位於窗口右下角的“構建查詢”按鈕。
3)在隨後的窗口中:
- 雙擊產品列,將其投射到“包含的列”窗格中。
- 雙擊單個 ID 列,將其投射到“包含的列”窗格中。
- 右鍵單擊 t1.product 列,現在位於“包含的列”窗格中,然後選擇“Order By”。
- 從“包含的列”窗格中 t1.individualID 列的聚合字段的下拉菜單中,選擇計數 DISTINCT。
- 在窗口底部,單擊“運行查詢”,生成一個包含我相信您所追求的表格。 (?)
乾杯,
布雷迪