輕鬆學習 R 語言

前言

我希望可以寫作一本閱讀起來不那麼生澀的程式語言書籍,讓原本沒有程式基礎但是工作上有分析需求的使用者,像是產品經理(Product Managers)、商業分析師(Business Analysts)或行銷企劃人員(Marketing Specialists)能夠用很輕鬆的方式學會 R 語言,進而應用到工作中,提升工作掌握度。

這本書的寫作風格以輕鬆簡潔作為主要訴求,理想的閱讀時間是工作日的午餐時間,我認為最好的學習就是不佔用讀者工作以外的休憩時間,因此若能夠讓讀者一邊享用美味的午餐,一邊閱讀輕鬆簡潔的程式語言書籍,該是多麽美好而且值得推廣的理念。

誰適合讀這本書

這是一本 R 語言的入門書,它適合這些人閱讀:

  1. 從未接觸過 R 語言的初學者
  2. 想學習 R 語言的資料科學基本應用:資料處理與探索性分析的初學者
  3. 使用過 R 語言,但只是快速應用套件而無法自己撰寫程式解題的初階使用者

誰可能不適合讀這本書

這是一本 R 語言的入門書,它無法滿足這些需求:

  1. 已經能嫻熟使用 R 語言的使用者
  2. 想學習 R 語言機器學習應用的使用者
  3. 想尋找一本鉅細靡遺 R 語言技術手冊的使用者

程式區塊特性

本書內容所附的程式區塊具有兩種特性:自我包含(Self-contained)與自我解釋(Self-explanatory),這裡所謂的自我包含所指的是每一個程式區塊都可以獨立執行,不需要倚賴其他的程式區塊,這也是為什麼您可能會看到很多相同的程式一直重複出現,因為我希望讓讀者能夠在任何地方中斷閱讀,也能夠在任何地方繼續閱讀。

而這裡所謂的自我解釋所指的是每一個程式區塊都是在解釋(或示範)前後文的描述,因為我相信在程式語言的學習上,千言萬語的文字敘述,往往不如一行程式與它所執行的結果還能夠清楚表達一個觀念。

本書所附的程式區塊有幾點值得注意:

  • 輸入與輸出一併陳列:一方面是為了與 R 語言的命令列(Console)的外觀相同,R 語言直譯式的設計會讓每一行程式執行後立刻回傳結果;一方面是為了讓讀者在沒有一邊操作電腦的同時也能夠閱讀這些程式並瞭解輸出的情況,程式區塊中會伴隨著中文或英文的註解(Comments),利用 # 符號以單行註解的形式呈現,就像是這樣:
> setence_to_print <- "輕鬆學習 R 語言" # 賦值沒有輸出
> setence_to_print # 這是會有結果輸出的輸入
[1] "輕鬆學習 R 語言" # 這是輸出
  • 輸出結果格式:開頭沒有帶 >+ 的內容就是命令列的輸出,除此之外的輸出結果本書以圖片顯示,就像是這樣:
> print("輕鬆學習 R 語言")     # 這是輸入
[1] "輕鬆學習 R 語言"          # 這是輸出
> 
> for (i in 1:3){                        # 這是多行輸入
+     print(c("我", "喜歡", "R 語言")[i])  # 這是多行輸入
+ }                                      # 這是多行輸入
[1] "我"     # 這是輸出
[1] "喜歡"   # 這是輸出
[1] "R 語言" # 這是輸出
  • 腳本樣式的程式:開頭沒有帶 >+ 的程式多半是練習題解答的程式區塊以這個樣式出現,希望讓讀者能夠全選然後複製執行,另一方面是不劇透,保持讀者的好奇心,鼓勵讀者真的自己執行看看結果為何,就像是這樣:
for (i in 1:3){
    print(c("我", "喜歡", "R 語言")[i])
}
  • 有奇怪三個底線的腳本樣式程式:有 ___ 的程式區塊全部是練習題所附的填空程式,請讀者將這三個底線刪除後填入正確的程式,就像是這樣:
for (i in 1:___){
    print(c("我", "喜歡", "R 語言")[___])
}

練習題

本書另外一個想推廣的理念是學習必須要有成就感,所以我們的練習題難度是容易的,並且一定會附上解答,如果讀者發現哪一個練習題讓你產生了挫折感,請一定來信告知,我會重新檢視題目的設計與解釋。

作者的聯繫信箱是:tony@kyosei.ai

關於作者

郭耀仁畢業於臺灣大學商學研究所,是資料科學與推廣教育的愛好者,目前是新創團隊 Kyosei.ai 的共同創辦人之一,在臺大資工系統訓練班開設多門 R 語言與 Python 的資料科學相關課程,亦與企業合作提供客製化的內訓課程。在 Kyosei.ai 之前任職過上海的新創團隊、台北的軟體公司與銀行,閒暇時喜歡長跑與乒乓球;著有 R 語言使用者的 Python 學習筆記系列文,是 2017 iT 邦幫忙鐵人賽 Big Data 組冠軍。

results matching ""

    No results matching ""