550 likes | 777 Views
R: Codes and Data Input and Output. 林 建 甫 C.F. Jeff Lin, MD. PhD. 台 北 大 學 統 計 系 助 理 教 授 台 北 榮 民 總 醫 院 生 物 統 計 顧 問 美 國 密 西 根 大 學 生 物 統 計 博 士. 2009 Regression R: Codes and Data Input and Output R: 程式與資料輸入與輸出. 林 建 甫 台 北 大 學 統 計 系 助 理 教 授. 資料 數值 (Data Values) .
E N D
R: Codes and Data Input and Output 林 建 甫 C.F. Jeff Lin, MD. PhD. 台 北 大 學 統 計 系 助 理 教 授 台 北 榮 民 總 醫 院 生 物 統 計 顧 問 美 國 密 西 根 大 學 生 物 統 計 博 士 Jeff Lin, MD. PhD.
2009 Regression R: Codes and Data Input and OutputR: 程式與資料輸入與輸出 林 建 甫 台 北 大 學 統 計 系 助 理 教 授 Jeff Lin, MD. PhD.
資料數值 (Data Values) • 資料以具有名稱的 ``物件'' 形式儲存. • 可以是向量 (vector), 矩陣 (matrix), 陣列 (array), 列表 (Lists), 或 資料框架 (data frames) 等. • 簡單的資料, 可以直接在 R 視窗中輸入. • 大型資料, 通常先以資料庫軟體, 試算表軟體等輸入儲存成 R 的外部檔案. • 由 R 從外部檔案中讀入, 而不是在 R 中, 用鍵盤輸入. Jeff Lin, MD. PhD.
Data Frames Data frames are very powerful. Simply speaking you can treat them as both lists and matrices: > df <- data.frame(name=c(“jon”,”kim”,”dan”), age=c(87,78,45), weight=c(76.3,96.3,62.9), height=c(1.67,1.84,1.54)) > df name age weight height 1 jon 87 76.3 1.67 2 kim 78 96.3 1.84 3 dan 45 62.9 1.54 > df$weight [1] 76.3 96.3 62.9 > df[,c("name","age")] name age 1 jon 87 2 kim 78 3 dan 45 > as.matrix(df) name age weight height 1 "jon" "87" "76.3" "1.67" 2 "kim" "78" "96.3" "1.84" 3 "dan" "45" "62.9" "1.54" Jeff Lin, MD. PhD.
R: 程式輸入 Jeff Lin, MD. PhD.
Editor • 先從程式視窗上端, 點選表單--編輯, 最下方--GUI偏好設定 • GUI 偏好設定, 可點選 MDI mode之後 • 在視窗上端表單--檔案 • 可點選 建立新的命令稿 或 開啟命令稿, 就可開啟一 (新) 文字檔案, 容許輸入指令 • 點選並反白所要執行的指令程式 • 再點選視窗上端表單下小的執行圖示--執行指令程式碼--(類似 ) • 即可執行指令 Jeff Lin, MD. PhD.
Data Input Jeff Lin, MD. PhD.
edit() • 輸入一個新的資料組名叫 x.data > x.data<-edit(data.frame()) • 修改名叫 x.data 的資料組 edit(data.frame(x.data)) Jeff Lin, MD. PhD.
Questions?! Jeff Lin, MD. PhD.
記事本(Notepad) 或 Wordpad 等文字編輯軟體 • 可先寫入指令程式碼 • 然後點選並反白所要執行的指令程式碼 • 在文字編輯軟體點選複製 • 然後在 {R} 點選小的執行圖示--貼上– • 即可執行指令 Jeff Lin, MD. PhD.
Rcmdr • 由 John Fox, McMaster university (英國) 所寫的 Rcmdr套件, 提供如 SPSS圖形使用者界面(GUI, Graphics User Interface),方便資料處裡與常用的統計分析, 可用以下的指令載入, R會自動安裝與載入其他必要套件. • 第一次使用 套件, Rcmdr 須先連接網際網路, 安裝和更新套件. > library("Rcmdr") • 使用 Rcmdr GUI表單點選, R會自動產生相關指令, 使用者可以在指令視窗中做修改. Jeff Lin, MD. PhD.
Rcmdr Jeff Lin, MD. PhD.
> library("Rcmdr") Jeff Lin, MD. PhD.
Tinn-R • http://www.sciviews.org/Tinn-R/ Jeff Lin, MD. PhD.
Questions?! Jeff Lin, MD. PhD.
Importing Data 資料輸入 • 習慣上, 資料的第一列 (row) 為變數名稱. • 習慣上, 資料儘量以數字輸入. • 統計軟體都可輸出入 ASCII (純文字) 檔案. • 專業的資料庫軟體都可輸出入 ASCII (純文字) 檔案. • ASCII (純文字) 資料檔案, 可以用任何編輯軟體閱讀 • ASCII (純文字) 資料檔案, 變數間可以 空格, Tab 鍵, 特殊符號 或 “,”分隔. • 專業的資料庫軟體與統計軟體中的 空格 與 Tab 鍵意義不同. • 若是以 “,”分隔, 習慣上副檔名為 ABCData.csv • R 可以讀入 SAS, SPSS, Splus 等資料, 但無法讀入 EXCEL (ABCData.xls) 檔案. Jeff Lin, MD. PhD.
Importing Data 資料輸入 統計分析在習慣上: • 資料庫軟體與統計軟體是不同的. • 沒有一種軟體同時具有專業的資料庫管理與統計分析功能. • EXCEL同時專業的資料庫軟體與統計軟體的功能, 但不是為所有統計專業人說接受. Jeff Lin, MD. PhD.
Importing Data: read.table(): Data in text (ASCII) files, 變數間以空格分開 Jeff Lin, MD. PhD.
Importing Data: read.table(): Data in text (ASCII) files, 變數間以空格分開 > df <- read.table(“foo.txt”, header=TRUE) > dim(df) [1] 221952 6 > summary(df) slide spot R Min. :1.00 Min. : 1 Min. : 30.0 1st Qu.:1.75 1st Qu.:13873 1st Qu.: 60.0 Median :2.50 Median :27745 Median : 102.0 Mean :2.50 Mean :27745 Mean : 487.5 3rd Qu.:3.25 3rd Qu.:41616 3rd Qu.: 233.0 Max. :4.00 Max. :55488 Max. :65211.0 G Rb Gb Min. : 24.0 Min. : 32.00 Min. : 24.00 1st Qu.: 38.0 1st Qu.: 40.00 1st Qu.: 26.00 Median : 59.0 Median : 49.00 Median : 32.00 Mean : 194.7 Mean : 51.85 Mean : 31.92 3rd Qu.: 110.0 3rd Qu.: 64.00 3rd Qu.: 36.00 Max. :62341.0 Max. :1234.00 Max. :255.00 > str(df) `data.frame': 221952 obs. of 6 variables: $ slide: int 1 1 1 1 1 1 1 1 1 1 ... $ spot : int 1 2 3 4 5 6 7 8 9 10 ... $ R : int 4416 335 39 568 42 43 56 40 7912 51 ... $ G : int 1533 155 47 211 50 110 64 45 4535 65 ... $ Rb : int 39 38 39 39 39 39 39 40 39 39 ... $ Gb : int 43 42 43 42 42 44 42 43 42 48 ... Jeff Lin, MD. PhD.
Importing Data: read.table()Data in text (ASCII) files, 變數間以空格分開 Jeff Lin, MD. PhD.
Importing Data: read.table()Data in text (ASCII) files, 變數間以空格分開資料檔案必須在 R 的工作路徑或檔案夾內 > setwd("X://temp//RData") > # Data Managements > DMTKR.read.table<-read.table("DMTKRblank.dat", + header=TRUE, + row.names=NULL, dec=".") > DMTKR.read.table Jeff Lin, MD. PhD.
Importing Data: read.table()Data in text (ASCII) files, 變數間以空格分開 Jeff Lin, MD. PhD.
Importing Data: read.table()Data in text (ASCII) files, 變數間以 “,”分開資料檔案必須在 R 的工作路徑或檔案夾內 Jeff Lin, MD. PhD.
Importing Data > # Data Managements > setwd("C://temp//Rdata") > DMTKRtable<-read.table("DMTKRcsv.csv", header=TRUE, row.names=NULL, sep=",” , dec=".") > DMTKRtable Jeff Lin, MD. PhD.
Importing Data > setwd("C://temp//Rdata") > DMTKRcsv<-read.csv("DMTKRcsv.csv", header = TRUE, sep = ",", dec=".") > DMTKRcsv > attach(DMTKRcsv) What happens? > scan(file = "DMTKRcsv.csv", skip=1, sep = ",", dec = ".") Jeff Lin, MD. PhD.
attach 與 detach • 若要使用 資料內的變數, 可使用 attach(資料物件) 將資料框架內變數放入 R 的記憶體中. > attach(DMTKRcsv) Jeff Lin, MD. PhD.
Use R Internal Data Frame使用R 內建資料框架 > data() # 查看內建資料框架名稱 > data(Orange) # 載入 R 內建資料框架 Orange > help(Orange) > Orange Tree age circumference 1 1 118 30 2 1 484 58 3 1 664 87 .......................... Jeff Lin, MD. PhD.