課程資訊
課程名稱
R程式語言與資料處理
Data Manipulation with R 
開課學期
107-1 
授課對象
 
授課教師
吳齊軒 
課號
LibEdu1094 
課程識別碼
H01 09400 
班次
 
學分
2.0 
全/半年
半年 
必/選修
 
上課時間
第7,8,9,10,11,12,13,14,15 週
星期四7,8,9,10(14:20~18:20) 
上課地點
綜302 
備註
密集課程。自備筆電.現非電資學院學生選修.每週四小時(三小時lecture+一小時作業討論)。A6:量化分析與數學素養
總人數上限:40人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/1071RDM 
課程簡介影片
 
核心能力關聯
本課程尚未建立核心能力關連
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

這是R語言的中階課程,同學應該具備基礎的R語言知識,如:R語言的語法規則、基本函數的使用、如何與R互動找出語法上的錯誤。資料處理是資料科學工作中最花時間的部份。這系列課程希望能基於我的實務經驗,向同學介紹使用R語言作資料處理時,重要的知識與技術。 

課程目標
1.掌握處理非結構化、半結構或與結構化資料的技術
2.利用整理後的資料製作Dashboard
3.掌握時間與空間的資料處理技術
4.掌握資料整合的技術 
課程要求
利用R語言翻轉教室系統完成相關的作業


**要加簽的同學請在第一週的週四第10堂課時至授課教室出席,領取授權碼。
選到R程式語言與資料處理的同學優先加簽R程式語言入門。
選到R程式語言入門的同學優先加簽R程式語言與資料處理。 
預期每週課後學習時數
 
Office Hours
 
指定閱讀
待補 
參考書目
1.指定閱讀 (請詳列每週學生應配合閱讀之篇章)
課程投影片、R語言翻轉教室(http://datascienceandr.org/material.html )
2.延伸閱讀 (請詳列每週學生應配合閱讀之篇章)
- Introduction to dplyr. https://cran.r-project.org/web/packages/dplyr/vignettes/dplyr.html
- Programming with dplyr. https://cran.r-project.org/web/packages/dplyr/vignettes/programming.html
- Two-table verbs. https://cran.r-project.org/web/packages/dplyr/vignettes/two-table.html
- Getting started with JSON and jsonlite. https://cran.r-project.org/web/packages/jsonlite/vignettes/json-aaquickstart.html
- A Common Interface to Relational Databases from R and S – A Proposal. https://cran.r-project.org/web/packages/DBI/vignettes/DBI-proposal.html
- Class and Methods for Spatial Data: the sp package. https://cran.r-project.org/web/packages/sp/vignettes/intro_sp.pdf 
評量方式
(僅供參考)
   
課程進度
週次
日期
單元主題
第7週
10/25  <h2>R語言的基礎語法與基礎物件</h2>
<ul>
<li>R語言的基礎語法</li>
<li>函數的使用方法</li>
<li>如何與R互動來解決R的語法問題</li>
<li>R語言翻轉系統使用說明</li>
</ul>

<a href=http://homepage.ntu.edu.tw/~wush978/rdataengineer/week1.html>投影片</a> 
第8週
11/01  <h2>資料科學的Hello World與資料視覺化</h2>
<ul>
<li>以案例描述在實務的資料科學工作中,需要優先進行的工作</li>
<li>請D4SG資料英雄計畫主持人介紹<a href=https://d4sg.org/>Data for Social Good</a></li>
<li>R語言的資料視覺化</li>
</ul>


<a href=http://homepage.ntu.edu.tw/~wush978/rdataengineer/week2.html>投影片</a> 
第9週
11/08  <h2>R語言的資料視覺化</h2>
<ul>
<li>R語言的資料視覺化</li>
<li>Shiny Application</li>
<li>Rmarkdown</li>
</ul>


<a href=http://homepage.ntu.edu.tw/~wush978/rdataengineer/week3.html>投影片</a> 
第10週
11/15  校慶休假 
第11週
11/22  <h2>非結構化與半結構化的資料處理</h2>
<ul>
<li>純文字的資料處理:分割與擷取</li>
<li>純文字的資料處理:搜尋與取代</li>
<li>純文字的資料處理:正則表示式</li>
<li>中文資料的特有問題:編碼</li>
</ul>

<h2>結構化的資料讀取</h2>
<ul>
<li>CSV</li>
</ul>

<h2>非結構化與半結構化的資料處理</h2>
<ul>
<li>樹狀資料結構</li>
<li>XML的處理:XPath與namespace</li>
<li>網頁的抓取</li>
<li>RSelenium與現代瀏覽器的解析網頁的功能</li>
</ul>

<a href=http://homepage.ntu.edu.tw/~wush978/rdataengineer/week5.html>投影片</a>
 
第12週
11/29  <h2>非結構化與半結構化的資料處理</h2>

<ul>
<li>半結構化的資料處理

<ul>
<li>JSON</li>
</ul>
</li>
<li>半結構化的R語言物件操作

<ul>
<li>JSON vs XML vs R List</li>
<li>其他注意事項</li>
</ul>
</li>
<li>結構化的資料讀取

<ul>
<li>CSV</li>
<li>Database</li>
<li>XML Table</li>
</ul>
</li>
<li>爬蟲入門 - 以RSelenium為例</li>
<li>dplyr套件的資料處理技術</li>
</ul>
<a href=http://homepage.ntu.edu.tw/~wush978/rdataengineer/week6.html>投影片</a>
 
第13週
12/06  <h2>結構化的資料清理</h2>
<ul>
<li>dplyr套件的資料處理技術</li>
<li>wide table 與 long table的概念</li>
<li>pipeline operator</li>
</ul>
<a href=http://homepage.ntu.edu.tw/~wush978/rdataengineer/week7.html>投影片</a>
 
第14週
12/13  <h2>資料整合</h2>
<ul>
<li>dplyr套建中的各種資料整合函數</li>
<li>時間資料的處理與轉換</li>
</ul>
<a href=http://homepage.ntu.edu.tw/~wush978/rdataengineer/week8.html>投影片</a>
 
第15週
12/20  <h2>空間資料整合</h2>
<ul>
<li>R語言中與空間間相關的物件</li>
<li>三種空間型態與相關的資料整合</li>
<li>空間資料的視覺化</li>
<li>空間資料的整合</li>
</ul>
<a href=http://homepage.ntu.edu.tw/~wush978/rdataengineer/week9.html>投影片</a>