本篇文章將透過幾個範例,展示如何使用這項新的篩選功能。
JASP 的篩選功能提供了三種介面:點擊篩選器(Click Filter)、拖放篩選器(Drag and Drop Filter)以及 R 篩選器(R Filter)。本文翻譯自JASP部落格文章。
點擊篩選器是一個簡單的篩選介面,用於篩選分類變量。可以通過點擊需要篩選的變量欄位標題來使用。
在第一個範例中,我們將使用數據集「Kitchen Rolls」(Data Library -> Kitchen Rolls),示範如何根據一個或多個分類變量的約束條件進行篩選。假設我們只想分析女性學生的數據。「Kitchen Rolls」包含兩個與此相關的變量:
操作步驟如下:
完成後,數據中只會保留性別為 "F" 且為學生 ("Y") 的行。如果需要清除通過點擊篩選器創建的所有篩選條件,只需點擊右側的橡皮擦圖標即可。
拖放篩選器讓您可以通過簡單的拖放操作來創建篩選條件。在 JASP 中加載數據集或 .jasp 文件後,可以通過點擊數據視圖左上角的篩選圖標來訪問拖放篩選器。
現在,我們使用拖放篩選器創建與前例相同的篩選條件。在從資料庫加載數據文件後,我們可以如上所述訪問拖放篩選器。接下來,將左側菜單中的 Sex(性別)變量拖入篩選框,並選擇 =
。注意,您也可以通過點擊直接添加變量或運算符。然後,點擊公式右側的空白區域,輸入 ‘F’,並按下 Enter。之後,點擊「應用透過篩選器」按鈕 (Apply pass-through filter),這樣篩選後,Sex 欄中只有包含 ‘F’ 的行會保持活躍狀態。
為了篩選出所有女性學生,我們需要在下方添加另一個公式:將 Student(是否為學生)變量拖入篩選框,並選擇 =
。接著輸入 ‘Y’,按下 Enter。應用篩選後,我們會看到只剩下滿足 Sex = F 並且 Student = Y 的受試者。
同樣地,例如,如果我們想激活某變量不等於特定值的受試者,可以在篩選中插入 ≠
。若需刪除所有通過拖放篩選器創建的篩選條件,只需雙擊垃圾桶圖標並應用即可。
接下來,我們將探討如何根據連續變量的等式或不等式約束篩選數據,也就是對「比例」類型的變量使用例如等於、大於或小於等操作。舉例來說,我們將使用數據集「Presents' Height」(資料庫 -> Miscellaneous),該數據集包含每位美國總統的身高比例(即他們的身高與最接近競爭者的身高相比)以及其普選支持率。
假設我們想從連續變量 Heights Ratio(身高比例)中篩選掉所有異常值。實現此操作的一種方法是:
完成上述操作後,我們可以看到數據中有一個異常值,該值位於第 10 行。此時,您的 JASP 窗口應顯示如下內容:
確定異常值的位置後,我們可以進一步篩選掉該異常值。首先,點擊 OK 以退出描述性統計的選單。向下滾動到第 10 行,我們可以看到這位總統的身高比例為 1.18405。同時,我們注意到變量 V1 代表行號,這非常方便,因為我們可以直接基於該變量進行篩選,而無需記住這位總統的具體身高比例。
進入拖放篩選器後,將變量 V1 拖入篩選框中。我們希望篩選器保留該變量中除第 10 行以外的所有值,因此將運算符 ≠ 拖到 V1 的旁邊。然後點擊 ≠ 右側的空白區域,輸入 ‘10’,並按下 Enter。最後,點擊「應用透過篩選器」(Apply pass-through filter),我們會看到第 10 行的數據已被篩選掉。當然,我們也可以直接基於變量 Heights Ratio 進行篩選,使用篩選公式 Heights Ratio ≠ 1.18405。另一種方式是建立「小於/大於」的篩選公式。該異常值的身高比例為 1.18405,但箱線圖顯示其他數據中沒有超過 1.15 的異常值。因此,篩選公式 Heights Ratio < 1.15 也可以達到篩選效果,保留所有身高比例低於 1.15 的數據。
可以通過點擊拖放篩選器左下角的「R」圖標訪問 R 篩選器。使用 R 篩選器,您可以為數據撰寫自定義篩選條件,這些條件是拖放篩選器無法提供的。此外,您還可以將 R 模式下創建的篩選條件與在變量視窗中選擇的篩選器或拖放篩選器中創建的條件結合使用。
實際上,您可以輕鬆查看由其他篩選器生成的程式碼,這些程式碼顯示在頂部只讀的文本框中,以 generatedFilter <-
開頭。例如,保持先前拖放篩選器範例中創建的篩選條件啟用,然後切換到 R 模式,系統會顯示以下介面(頂部顯示生成的篩選條件的 R 語法):
在程式碼視窗中,您只需輸入目標欄位的名稱即可引用您的數據。JASP 會自動確保其引用正確的數據。如果欄位名稱包含空格,則必須將這些空格一併輸入。若需清除在 R 篩選器中創建的所有篩選條件,只需點擊介面底部的橡皮擦圖標,然後點擊「應用」即可。
以下是幾個範例(前提是您的數據中包含這些欄位):
基於性別和測試分數的篩選
5: Gender == "Female" & TestScore > 5
generatedFilter & Gender == "Female" & TestScore > 5
(mean(Age) > Age) %|% Sex
mean(Age) > Age %|% Sex
因為這樣只會將年齡按性別進行分組,而平均年齡的計算仍基於整列數據。雖然拖放篩選器的運算符和功能存在一定限制,但使用 R 模式篩選器的可能性幾乎是無限的。任何以 R 語法表示的篩選條件都可以在 JASP 的 R 篩選器中運行。