2014年6月1日 星期日

[R]用R將資料依百分位數分組(Recode Data by Percentile) 連續型資料轉離散

        在資料分析中我們可以大致將資料類型分為離散型變項以及連續型變項兩種類別,以統計檢定來說,連續型資料的檢定力相對較強,結果也相對具有說服力。但是在真實社會環境中,第一很難確切的蒐集到那麼多連續型的變項;二來連續型變項之間的關係,由於檢定力強,反過來說就是除非兩者關係相當明確,否則很難證實相關性;若遇到這些情況,我們通常就會需要將連續型變項轉換成離散型變項,簡單來說就是將資料重新分組(或稱為recode)


        資料重新分組的例子很多,像是把年齡依五歲切成一個區間,或是將收入劃分為高中低組別。如果我們很明確的知道每組的界線在哪邊,當然可以直接寫語法分組,但是如果我沒辦法確定組別的界線呢?

        今天實務上遇到的例子是北中南三區受訪者對於數百項產品的評分,除了總分之外,我還希望能得知個別區域的分數。像這樣人圍的評分因為非常主觀,所以我並沒有直接拿總分來分析,我只需要將分數由低至高分為五個等分來分析就好,這時候我們要做的動作:

    1. 分別取得北中南三區20th、 40th、60th、 80th的百分位數

    2. 分別依北中南三區的百分位數將各區分為五組

    如果我們是用肉眼觀察跑出的資料結果,再手動KEY IN百分位數來分組,這樣就太累了。
所以我們偷懶使用小迴圈來幫我們完成:


像這樣的技巧,在之前提到的RFM模型(將資料依RFM三個變項分為五等分)也會用到,算是個滿實用的小技巧