跳到主要內容

發表文章

大器可以晚成--我到底有沒有本事和毅力活出我的人生?

  成功沒有期限,重點是:認識自己,對我來說這是一本關於教養自己的書。                                                                                                             商琪視野 等待發展完全的後青春期 你是否內心有個小小孩一直很不願意長大 ? 在面對社會化的過程中又不得成熟面對,有時努力要表現出有責任感,反而又顯毛躁急進,缺乏執行力,最後逃避躲在自己的小世界裡。   書中提及從青春期到成人之間有一個階段,叫後青春期指 18~25 歲之間,邊緣系統負責 產生情緒 ,前額葉皮質負責 管理情緒 ,青春期發展邊緣系統,而前額葉皮質在接下來 10 年還在持續發展,因此當我們 18 歲後其實是無法好好管理情緒,在需要做判斷或接受升學考試和求職時,無法處理好情緒壓力就容易做出超出常人理解的事。   國外很流行 gap year 空檔年或稱壯遊,有些人是高中升大學、大學期間或畢業後出去旅行,剛好就是 18~25 歲之間,藉由認識自己增加視野寬度及廣度,對世界能有不一樣的認知及保有好奇心,讓自己未來在面對困境時能有抒發的技巧。   我自己是在唸研究所前去國外半年,老實說剛開始出國只是覺得姊姊們都有出去我也要,當時的英文大約只有國小程度吧, 憑著一股傻勁支持自己往前走,在邁入機場通關道路上以及飛機落地時,強忍淚水默默啜泣,問自己為什麼要選擇來受罪,當時沒有答案,你問我學了什麼 ? 在我想放棄某件事時,就會想起當時的勇敢和努力克服弱懦 的小雞心。   也許我們在面對 挫折 時都想逃避,但其實只是需要時間等待,磨練後渡過後青春期,會找到較成熟的自己。   時間的禮物 研究指出隨時間和經驗的加成,可提升神經連結和認知能力,我們會變得更聰明和更有創意,認知行為的研究發現每個人都擁有兩種智力,流體智力 (fluid intelligence) 及晶體智力 (Crystallized Intelligence) 。流體 智力在早年 20 歲達高峰,隨生長曲線變化而獲得,邏輯歸納及演繹的能力;晶體智力是指在實踐中以習得的經驗為基礎的認知能力,職業的知識或業餘愛好的能力。 中年後晶體智力人就會持續上升。 時間真是老天爺給大家
最近的文章

使用python繪製Upset plot

  Upset plot 將集合視覺化,特別是當集合數大於 5 的時候, Upset plot 相較於 Venn plot 可以更清楚的呈現。 Upset plot 來自於 Venn plot 的變化, Venn plot 較常用於生物資訊呈現 ( 圖 1-3) ,但是往往會遇到集合數太多不易呈現的情況,從下圖可清楚看到當集合數為 4 的時候,畫面已經有些複雜,所以 Venn plot 的缺點就是當集合數過多時,畫面所呈現的資訊反而會造成視覺上的負擔,增加訊息解讀的困難性,失去視覺化的意義 — 方便閱讀,因此當集合數 ≥5 時不建議使用 Venn plot ,而後衍生出 Upset plot 。 Upset plot 優勢在於當集合數 ≥5 時可以清楚呈現資訊,不會造成視覺上的混亂。 2020 年影響全球的 COVID-19 ,在面對未知的流行病時沒有人可以確定真正有效的治療物,因此優先挑出具有高度可能性的藥物,嘗試用於治療病患,在高度不確定性的情況下會產生多種治療組合,這樣的情況就很適合採用 Upset plot 呈現 Real World 用藥資料,這裡有一篇發表於 CANCER DISCOVERY 的文章 ,這是一個很好的實務範例 ( 圖 4) ,以下擷取這篇 paper 的部份數據,簡單的做個 Upset plot 。 操作步驟 1. 選定主題,準備素材 以這篇文章中的數據來畫 Upset plot 圖 。開始執行前,需要先安裝 Upset plot 的套件。在 Window 環境下,開起命令提示字元,輸入 pip install upsetplot ,安裝完成後,就可進入繪圖步驟。   2. 繪製 Upset plot 這邊帶入 paper 中前 10 筆的數據。 from upsetplot import generate_counts from upsetplot import plot from upsetplot import from_memberships example = from_memberships([['Azithromycin','Hydroxychloroquine'], ['Hydroxychloroquine'

python與SAS資料處理-歸人與排除重複

  歸人顧名思義就是將一個人多筆的資料整合,每人只留下 1 筆。   通常取得的資料都是原始資料,並未經過整理。例如手上有疑份顧客購物紀錄,裡面有每個顧客在這 1 年內的每筆消費紀錄,這是一份以每次消費紀錄為 1 筆的紀錄形式,所以一個人可以有多筆的消費紀錄。當我們想要知道這些消費紀錄源自於多少顧客的購買時,這時候就需要用到歸人的概念,將資料轉換為每一個人只有 1 筆資料的紀錄形式 ( 如下圖所示 ) 。 以 SAS 進行資料歸人 歸人留 1 筆消費紀錄 proc sort data =cost; by ID time; run ; /* 在規筆前依照 ID 跟消費日期做排序 */ data cost_1; set cost; by ID; if first.id; run ;   /* 保留第一筆資料 */   之前已經有針對 proc sort 的排序語法進行說明,有需要可參考這篇 文章 , SAS 排序的設定值為升冪,也就是說每個人都會從最早那次的紀錄開始往後排序,所以用 first.id 就可以留下每個人最早那次的消費紀錄。 這邊也可以用排除重複的概念保留 1 筆資料 proc sort data =cost out =cost_2 nodupkey ; BY ID; run ; 利用 nodupkey ,將 ID 重複的資料刪除,僅保留每個 ID 第一次出現的該筆紀錄。   歸人累計所有消費金額 proc sort data =cost; by ID time; run ; data cost_1; set cost; by ID; if first.id then count= 0 ;/* 每個人第一筆資料都令 count=0*/ count+NT;/* 同 ID 累計 NT 數值 */ if last.id; run ;   除了要歸人以外,還要累計每個仁所有的消費金額,所以這邊就會創建一個 count 欄位,每一個人的第一筆 ID 令 count=0 ,在同樣 ID 時累加 NT 的數值,最後每個人保留最後一筆 ID ,也就是最後累計的總額。 以 Python 進行資料歸人 歸人留 1 筆消費紀錄 cost.sort_v

python與SAS資料處理入門--條件限制(邏輯判斷)

  運用邏輯判斷進行資料篩選,這也是資料處理中重要的環節。   資料清理時經常會需要篩選或是排除某些條件下的資料,最簡單的例子就是當原始資料的年齡為 0-99 歲時,但所需要用於後續分析的資料只需留下 20-30 歲的數據時,就需要用到邏輯判斷進行資料篩選。 一般在 SAS 上會使用 IF+ 邏輯條件來進行判斷, python 則較為不同,以下分別做示範。   以 SAS 進行邏輯判斷 單一條件,篩選出性別為男性的資料 data id_m; set id; if gender= "M" ; run ; /* 用保留的邏輯判斷留下性別為男性的資料 */ (1) 大小寫:這邊要注意欄位裡面的 coding 方式, 大小寫有差別 ,如果寫成 if gender= "m" ,那這樣不會留下我們想要的資料了。 (2) 文字欄位條件,需要加上 雙引號 。   也可以用排除的方式留下資料 : data id_m; set id; if gender= "F" then delete ; run ; /* 用排除的方式保留資料 */ 這兩種寫法都可以,但是在某些情況下結果會有差異,當我們很確認欄位的 coding 只有 F 跟 M 時,這兩個寫法得到的結果會相同,但如果欄位中有其他 coding 或是 missing value 時,後面的寫法只會將性別 coding 為 F 的資料排除,所以如果裡面包含 missing value 則會一同被留下,所以使用上大家依據需求採用最恰當的寫法。 多重條件,篩選出性別為男性且年齡 <50 的資料 data id_m; set id; if gender= "M" and age< 50 ; run ; 利用 and 或 or 連接多個條件,進行邏輯判斷。 以 Python 進行邏輯判斷 單一條件,篩選出性別為男性的資料 id_m=id_list[id_list["Gender"].isin(["M"])] 不過 pandas 中只有 isin 指令,所以如果是要用排除的方式就必須要繞路執行,先把要做判斷的

使用Tableau 繪製—折線圖 (Line Chart)

  折線圖是最常用來呈現兩個維度的 量化關係 圖表,與長條圖 (bar chart) 最大的不同於,折線圖適用於 連續資料 ,長條圖則是 類別資料 。折線圖可用來傳達趨勢的變化 ( 銷售金額、保險費用、醫療費用 … 等 ) ,將資料點與點之間用線接起來的變化圖。   這次我們還是用醫院服務滿意度資料,變項中多了年代,可比較不同時間點的滿意度圖表。 Step1 : 度量名稱 丟入畫布中,它會自動視為「列」的資料,此時的度量名稱包含門診、急診、住院的滿意度分數,注意這裡的數值為加總後的分數。 Step2 : Year 丟入欄中 。這時候可以看見畫布中的數值,在左邊的畫布中也同時出現折線圖的圖示。 Step3 : 點選折線圖示 。可以看見門診、急診及住院的線條,此線條從 2015~2021 年,但實際上並沒有 2015 及 2021 年的資料,且數值的加總的總和,並非平均值,因此我們下一步需要做調整。 Step4 : 調整圖表內容 。將 Year 修正成 2016~2020 ,可在 X 軸 Year 上按右鍵後,調整年代。同時在列上將門診急診住院調整成平均值,也同時將計數移除。 現在我們完成一張折線圖了,也可以自由調整線的顏色及大小,或是增加參考線等等,因為我們的滿意度每年差異不大,因此較難看出趨折的變化,這也代表每年的滿意度都維持一定的水準,至少皆有 85 分以上。

Python自動化--複製Excel工作表至另一個Excel上

  Python 可以協助處理大量重複性工作,將 Excel 上的工作表自動化複製至上百個不同的 Excel 檔案上   實務上可能會遇到必須將一個 Excel 工作表複製到不同的 Excel 檔案上的情況,一般而言利用 Excel 移動或複製工作表的功能也能處理,但是當這個動作必須執行上百次,移動到上百個不同的 Excel 檔案時,就必須耗時的一個一個執行重複性工作,然而利用 Python 就可以輕鬆簡單化這項工作。   不過 Excel 檔案因儲存的格式可分為 xlsx( 一般版本 ) 跟 xls( 相容版本 ) ,這兩個版本在 Python 處理上需要使用不同的套件處理,這次就以相容版本為例進行示範,有興趣或是有需要的人可以再去搜尋 其他版本的處理。   操作範例 : 假定手上有來自於不同地方的 20 個資料檔案,這些資料都適用一致的編碼方式,為了避免之後時間久了產生混亂,因此必須將這份編碼表分別插入這 20 份資料中,讓每份檔案都有一份編碼表可以參閱,編碼表如下所示。 這邊會用到 3 個套件,開始執行前,尚未安裝 xlrd 、 xlwt 及 xlutils 者需要先安裝,在 Window 環境下,開起命令提示字元,輸入 pip install xlrd 、 pip install xlwt 以及 pip install xlutils ,安裝完成後,開始執行後續的程式碼。 import xlrd import xlwt from xlutils.copy import copy def replace_xls(sheetname): table = xlsx.sheet_by_name(sheetname) rows = table.nrows cols = table.ncols worksheet = wb2_1.add_sheet(sheetname) for i in range(0,rows): for j in range(0, cols): # print(i,j,table.cell_value(i, j)) worksheet.write(i, j ,table.cell_value(i, j

Tableau 優化圖表技巧

  還記得之前我們使用模擬數據,醫院服務滿意度資料,繪製長條圖嗎 ?? 快速上手 Tableau 繪製—長條圖 (bar chart) 技巧 1 :重點提示工具 當我們只想看自己有興趣的變項或想凸顯某個項目做說明時,這時候需要大家把眼球停住在某個閃光點, 重點顯示 就顯得重要了。 Step1 :分析 à 醒目提示工具 (H) 。 在我們的變項中是以「 center 」作為各地區醫院的說明,因此點選至 醒目提示工具 (H) 時需再進一步點選「 center 」。 點選「 center 」後可看見以下圖示,在畫面的右邊,可以看見「醒目提示 center 」方框,可以隨意點選,若不想製作醒目提示按鈕,其實也可直接點選都市的名稱也行,差別只在做了提示按鈕,城市的名稱可以「重點顯示」變成黃色讓人一眼看出。 技巧 2 :新增註解 我們可以透過註解修改文字說明或是新增其他資訊,讓閱讀者可以更理解資料,若提到資料的說明,還可利用「標記」中的各種類型註解。   Step1 :在想要註解的長條圖上按右鍵 à 選「新增註解」 à 「標記」 。 在編輯註釋內皆可隨意修改成自己的喜好,提醒在修改時,若要改變字型、顏色、大小,皆須將文字內容先反白後才能修正,只有文字內容的說明可以直接打在方框中即可。 Step2 :註解的顯示格式修正,點選「格式」 à 「註解」 。 為了讓圖表更精緻,力求畫面協和及優美,可以開啟格式編輯來修正邊框、箭頭、背景等視覺感受。 這裡修正陰影 ( 淡黃色 ) 、角 ( 更圓 ) 、線 ( 虛線 ) 、線末端 ( 箭頭 ) 等,可自行點選試試不同設計風格。 最後我們擁有清晰的註解說明了,這個技巧可以用在任何圖表上, 另外提醒在選擇註解類型時,還有區域型註解及節點型註解兩種選項,節點型與標記型很類似,差別在是否跟隨特定資料移動,標記行顧名思義,要標記某個資料,為固定型標記,節點型則可任意移動,接下來就依自己需求修正囉,預祝大家都能修正出理想樣貌。