Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

R統計軟體簡介

41,272 views

Published on

R統計軟體的簡介與安裝過程說明
Edit by Personlin
(Original from Dr. Chien-Fu Jeff Lin)

  • 有許多免費教學資源
    https://sites.google.com/site/zhonghuarruantixuehui/home/learn
    R軟體的問題討論論壇
    http://groups.google.com/group/taiwanruser
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • 謝謝分享!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

R統計軟體簡介

  1. 1. R 統計軟體 - 安裝與使用 2008/02/22 林柏伸
  2. 2. R 統計軟體 <ul><li>R 是什麼 , 為什麼要用R? </li></ul><ul><li>安裝與設定 </li></ul><ul><li>基本操作 </li></ul><ul><li>安裝套件 package </li></ul><ul><li>資料庫連線設定 </li></ul><ul><li>基本繪圖 </li></ul><ul><li>Demo </li></ul>
  3. 3. R 是什麼 <ul><li>R 系統是由 Ross Ihaka 與 Robert Gentleman 從 S 語言所發展出來 , 主要是為了統計分析與繪圖 </li></ul><ul><li>S 語言早在 1980 年代末期 , 由 AT&T 實驗室 ,Rick Becker, John Chambers, 與 Allan Wilks 發展用來進行統計分析與作圖 </li></ul><ul><li>Insightful 公司將 S 商品化 , 並加入許多方便的操作介面 , 稱為 S-plus </li></ul><ul><li>R 可視為統計數學軟體 , 也是一種程式語言 </li></ul>
  4. 4. R 是什麼 <ul><li>R 是一個開放原始碼 (open-source, GNU General Public License) 的統計分析軟體 </li></ul><ul><li>R 跟 S 都是以物件導向為主的程式語言 </li></ul><ul><li>R 的網站 http://www.r-project.org ( 在 Google 搜尋 R 就可以找到 ) </li></ul><ul><li>R 最新版本為 2.6.2 </li></ul>
  5. 5. 為什麼要用R ? <ul><li>R 與 S-plus 語法大多相近 , 但是 R 是開放原始碼 (open-source, GNU General Public License)( 免費 , 自由軟體 ), 目前由一群跨國際的志工人員組成的 R 核心發展組織 (R core-development team) 所維持 , 運作與持續更新 . </li></ul><ul><li>R 與 S 都是以物件導向為主的程式語言 , 透過交互作用方式很容易地進行統計分析與繪圖 , 這與 SAS, SPSS 的方式有所不同 </li></ul>
  6. 6. 為什麼要用R ? <ul><li>R 是科學家寫出來的軟體 , 而且被科學家所使用 </li></ul><ul><li>可以在不同平台上執行 Windows, Mac, Unix, Linux, ... </li></ul><ul><li>簡單安裝 </li></ul><ul><li>R 是免錢的! </li></ul><ul><li>有數百個擴充套件 (packages) 可以安裝 </li></ul><ul><li>有許多文章的發表都順帶包含了R的套件 </li></ul>
  7. 7. 為什麼要用R ? <ul><li>有很棒的線上說明及文件可以參考 </li></ul><ul><li>還有郵件論壇可以發問 (mailing list) </li></ul><ul><li>很棒的社群 ( 一堆統計專家 ?) – friendly and helpful people... </li></ul><ul><li>很容易可以呼叫其他語言的函式庫 Fortran, C, Java, ... libraries </li></ul>
  8. 8. 安裝與設定 <ul><li>下載 R http://www.r-project.org </li></ul><ul><li>下載 Tinn-R http://www.sciviews.org/Tinn-R/ </li></ul><ul><li>安裝 R </li></ul><ul><li>安裝 R 套件 install_packages.r </li></ul><ul><li>修正 RMySQL 套件的安裝 </li></ul><ul><li>安裝 Tinn-R </li></ul><ul><li>在 Tinn-R 設定 R 啟動參數, Options->Main->Application->R->Rgui(parameter and path) </li></ul>
  9. 9. http://www.r-project.org/
  10. 10. Taiwan mirror
  11. 11. 選擇 Windows
  12. 12. 請選 base contrib 是套件庫
  13. 13. R-2.6.2-win32.exe
  14. 14. 安裝 R R-2.6.2-win32.exe
  15. 15. 安裝的檔案夾位置 GNU 版權聲明
  16. 16. 建立開始功能表單 安裝的內容 , 完整安裝 建立捷徑與快速啟動
  17. 17. 安裝中…… 安裝完成 !!
  18. 19. 安裝 Tinn-R Tinn-R_1.19.4.7_setup.exe
  19. 20. GNU 版權聲明
  20. 21. 安裝的檔案夾位置 建立開始功能表單
  21. 22. 檔案關聯性設定
  22. 23. 安裝中…… 安裝完成 ! 並啟動 Tinn-R
  23. 24. 呼叫 R 介面
  24. 26. 可以開始用 R 寫程式啦 !!
  25. 27. 基本操作 <ul><li>help.start() 線上說明 </li></ul><ul><li>help(mean) 指令說明 ?mean </li></ul><ul><li>example(plot) 範例展示 </li></ul><ul><li>data() 顯示目前可用的資料 </li></ul><ul><li>objects(), ls() 顯示目前所有的物件 </li></ul><ul><li>rm() 移除物件 </li></ul><ul><li>注意!!R會區分大小寫不同!! </li></ul>
  26. 28. 變數的分類 <ul><li>&quot;numeric&quot;, 實數向量 </li></ul><ul><li>&quot;integer&quot;, 整數向量 ( 有時需特別指定 ) </li></ul><ul><li>&quot;logical&quot;, 邏輯變數向量 (true or false), 以 TRUE (T) 或 FALSE (F) 呈現 ,( 也可以是 1 (T) 與 0 (F). </li></ul><ul><li>&quot;complex&quot;, 複數向量 </li></ul><ul><li>&quot;character&quot;, 文字或字串向量 , 通常輸入時 , 在文字或字串兩側加上雙引號 . </li></ul><ul><li>&quot;list&quot;, 列表 , 是一個由 R (S) 物件所組成的向量 </li></ul>
  27. 29. R 的物件類別 <ul><li>Vector </li></ul><ul><li>Matrix ( 二維 ) </li></ul><ul><li>Array </li></ul><ul><li>List </li></ul><ul><li>Data Frame </li></ul><ul><li>Function </li></ul>
  28. 30. R 當計算機
  29. 33. 設定工作目錄 <ul><li>getwd() 檢視目前的工作目錄 </li></ul><ul><li># 先開好資料夾 C:Rwork </li></ul><ul><li>> setwd(&quot;C://Rwork &quot;) </li></ul><ul><li># set new working directory </li></ul>
  30. 34. 很多的 pdf 說明文件 (in English…) Html 的說明文件 (in English…) 不知道指令的參數該怎麼下的時候 help() ?
  31. 35. 安裝套件 package <ul><li>install.packages() </li></ul><ul><li>使用 GUI 選單 </li></ul>
  32. 36. 選擇程式套件
  33. 37. 安裝程式套件
  34. 38. 選擇安裝的鏡射站 (Taiwan)
  35. 39. 選擇欲安裝的套件 按著 Ctrl 可以多重選取
  36. 40. 完成套件的安裝
  37. 41. 推薦安裝套件 <ul><li>Cairo 輸出圖檔的套件 </li></ul><ul><li>CircStats 可以畫玫瑰圖的套件 </li></ul><ul><li>circular </li></ul><ul><li>DBI RMySQL 需要 </li></ul><ul><li>mapdata 地圖資料含高解析 world map </li></ul><ul><li>mapproj 投影 </li></ul><ul><li>maps 繪製地圖的套件 </li></ul><ul><li>maptools Tools for reading and handling spatial objects </li></ul><ul><li>nlme non-linear mixed effect </li></ul><ul><li>RMySQL 跟 MySQL 溝通的套件 </li></ul><ul><li>RSQLite 跟 SQLite 溝通的介面 </li></ul><ul><li>Rwave Time-Frequency analysis of 1-D signals </li></ul><ul><li>seewave Time wave analysis and graphical representation </li></ul><ul><li>sgeostat 地質統計套件 </li></ul><ul><li>shapefiles 讀寫 Shapefile </li></ul><ul><li>signal 訊號處理 </li></ul><ul><li>spgrass6 讀寫 GRASS 的檔案 </li></ul><ul><li>timsac 時間序列分析 </li></ul>
  38. 42. 載入套件 packages <ul><li>library() </li></ul><ul><li>使用 GUI 工具載入套件 </li></ul>
  39. 43. 修正R MySQL 的安裝 <ul><li>直接安裝 RMySQL 套件後 , 在欲使用此 package 會發生錯誤訊息 library(RMySQL) </li></ul><ul><li>要去下載兩個 dll 檔放到 RMySQL 安裝的路徑下 , 才可以正常載入 </li></ul>
  40. 44. 複製兩個 dll 檔 libMySQL.dll libmysql.lib 貼到RM ySQL 的安裝目錄下 C:Program FilesRR-2.6.2libraryRMySQLlibs
  41. 45. 如何連線到資料庫系統 <ul><li>library(RMySQL) </li></ul><ul><li># open the connection using user, passsword, etc., as </li></ul><ul><li># 開啟 MySQL 連線 ( 寫法一 ) </li></ul><ul><li>drv <- dbDriver(&quot;MySQL&quot;) </li></ul><ul><li>con <- dbConnect(drv, group = &quot;rs-dbi&quot;, host=“your host ip&quot;, username=“your user name&quot;, password=“your password&quot;, dbname=&quot;NGA&quot;) </li></ul><ul><li># 開啟 MySQL 連線 ( 寫法二 ) </li></ul><ul><li>con2 <- dbConnect(MySQL(), user=&quot; your user name &quot;, password=&quot; your password &quot;, dbname=&quot;NGA&quot;, host=&quot; your host ip &quot;) </li></ul>
  42. 46. 繪製地圖 <ul><li>需要的 package : maps, maptools, mapdata </li></ul><ul><li>library(maps,maptools,mapdata) data(worldHiresMapEnv) <- 載入高解析地圖資料 map(&quot;worldHires&quot;, xlim=c(118, 123), ylim=c(21, 26)) <- 繪製台灣地區地圖 map(&quot;world&quot;, xlim=c(118, 123), ylim=c(21, 26)) <- 低解析度 </li></ul>
  43. 47. 從資料庫取得資料 <ul><li># Run an SQL statement and extract its output in pieces (returns a result set): </li></ul><ul><li># 傳送查詢 ( 寫法一 ) </li></ul><ul><li>rs <- dbSendQuery(con, statement = paste( </li></ul><ul><li>&quot;SELECT EQ_ID,NAME&quot;, </li></ul><ul><li>&quot;FROM EQ&quot;, </li></ul><ul><li>&quot;WHERE MAG > 7&quot; </li></ul><ul><li>)) </li></ul><ul><li>data <- fetch(rs, n = -1) # extract all rows </li></ul><ul><li>data </li></ul><ul><li>dim(data) </li></ul><ul><li>names(data) </li></ul>
  44. 48. 從資料庫取得資料 <ul><li># Run an arbitrary SQL statement and extract all its output (returns a data.frame): </li></ul><ul><li># 傳送查詢 ( 寫法二 ) </li></ul><ul><li>ID.EQ <- dbGetQuery(con2, &quot;SELECT EQ_ID,NAME FROM EQ&quot;) </li></ul><ul><li>ID.STATION <- dbGetQuery(con2, &quot;SELECT STATION_ID,Name FROM STATION&quot;) </li></ul><ul><li>ID.SGM <- dbGetQuery(con2, &quot;SELECT SGM_ID,EQ_ID,STATION_ID FROM SGM&quot;) </li></ul><ul><li>ID.SGM_Meta <- dbGetQuery(con2, &quot;SELECT SGM_ID FROM SGM_Meta&quot;) </li></ul>
  45. 49. 查看資料庫連線狀態 <ul><li># Get meta-information on a connection (thread-id, etc.): </li></ul><ul><li># 取得連線狀態的資料 </li></ul><ul><li>summary(MySQL(), verbose = TRUE) </li></ul><ul><li>summary(con, verbose = TRUE) </li></ul><ul><li>summary(rs, verbose = TRUE) </li></ul><ul><li>dbListConnections(MySQL()) </li></ul><ul><li>dbListResultSets(con) </li></ul><ul><li>dbHasCompleted(rs) </li></ul>
  46. 50. 中斷連線 <ul><li>dbDisconnect(con) </li></ul><ul><li>dbDisconnect(con2) </li></ul>
  47. 51. Demo <ul><li>demo() </li></ul><ul><li>demo(package = .packages(all.available = TRUE)) </li></ul><ul><li>demo(Japanese) </li></ul><ul><li>demo(graphics) </li></ul><ul><li>demo(image) </li></ul><ul><li>demo(plotmath) </li></ul>
  48. 52. Demo <ul><li>library(tcltk) </li></ul><ul><ul><li>demo(tkcanvas) </li></ul></ul><ul><ul><li>demo(tkdensity) </li></ul></ul><ul><li>library(rgl) </li></ul><ul><ul><li>demo(rgl) </li></ul></ul><ul><li>library(seewave) </li></ul><ul><ul><li>demo(seewave) </li></ul></ul>
  49. 53. R 的相關網站 <ul><li>R 官方網站: http://www.r-project.org </li></ul><ul><li>R 繪圖: </li></ul><ul><ul><li>http://addictedtor.free.fr/graphiques/ </li></ul></ul><ul><ul><li>http://cged.genes.nig.ac.jp/RGM2/index.php?clear=all </li></ul></ul><ul><li>中文教學網站: </li></ul><ul><ul><li>台北大學林建甫老師 http://web.ntpu.edu.tw/~cflin/Teach/R/Rproj.htm </li></ul></ul><ul><ul><li>中山大學劉正山老師 http://www2.nsysu.edu.tw/politics/liu/main/ResearchTools/appliedStatistics.htm </li></ul></ul>

×