第二講實踐:數據結構入門
讀取方法1:使用openxlsx包
install.packages("openxlsx")nlibrary(openxlsx)nread.xlsx("D:Documentstest病例數據.xlsx",sheet=1)npatientdata <-read.xlsx("D:Documentstest病例數據.xlsx",sheet=1)npatientdatan
讀取方法2:使用剪切板
首先,打開「病例數據.xlsx」,選中要讀取的內容,右鍵複製,然後在Rstudio中編寫如下代碼:
read.table("clipboard",header = T)n
顯示結果如下:
讀取方法3:將excel另存為.csv文件首先,打開「病例數據.xlsx」將其另存為「病例數據.csv」格式,在Rstudio中編寫如下代碼:
read.csv("d:Documentstest病例數據.csv",header=T)n
顯示結果如下:
二、數據結構入門1、向量
向量是用於存儲數值型、字元型或邏輯型數據的一維數組
注意:單個向量中的數據必須擁有相同的類型或模式
patientname <- c("猴子","李同","王五","張三")nage <- c(29,34,28,52)ntypes <- c("1型糖尿病","2型糖尿病","1型糖尿病","2型糖尿病")n
2、矩陣
矩陣是一個二維數組,可通過函數matrix()創建矩陣。
#行名nrnames <-c("R1","R2","R3");n#列名ncnames <-c("C1","C2","C3","C4","C5");nny <- matrix(1:15,nrow = 3,ncol = 5,byrow=TRUE,dimnames = list(rnames,cnames));nyn
顯示結果如下:
age <- c(29,34,68,52)nrnames <-c("猴子","李同","王五","張三")ncnames <-c("age")na <-matrix(age,nrow = 4,ncol = 1,byrow = TRUE,dimnames = list(rnames,cnames))nan#繪製柱狀圖nbarplot(a[,"age"],n main = "病人年齡分布",n xlab="姓名",n ylab="年齡",n col="lightblue",n border="red",n )n
顯示結果如下:
3、數組
數組與矩陣類似,但是維度可以大於2,可通過array函數創建。
dim1 <- c("A1","A2","A3")ndim2 <- c("B1","B2","B3")ndim3 <- c("C1","C2","C3")nz <- array(1:27,c(3,3,3),dimnames = list(dim1,dim2,dim3))nzn
顯示結果如下:
4、數據框數據框可能是你在R中最常處理的數據結構,因為它不同的列可以包含不同模式(數值型、字元型)的數據,它通過data.frame()創建。
patientID <-c(1,2,3,4);npatientname <-c("猴子","李同","王五","張三");nage <- c(29,34,68,52);ndiabetes <-c("1型糖尿病","2型糖尿病","1型糖尿病","2型糖尿病");nstatus <-c("較差","好轉","顯著好轉","較差");npatientdata <-data.frame(patientID,patientname,age,n diabetes,status,n stringsAsFactors = FALSE);npatientdatann#選取元素npatientdata[1:3]npatientdata[c("patientname","diabetes","status")]npatientdata$patientnamen
顯示結果如下:
5、因子
名義型變數和有序型變數在R中成為因子,函數factor()以一個整數向量的形式存儲類別值,整數的取值範圍是[1...k](k是名義型變數中唯一值的個數),同時一個由字元串組成的內部向量將映射到這些整數上。
要表示有序型變數,需要為函數factor()指定參數ordered=TRUE。
#給定向量nstatus <-c("Poor","Improved","Excellent","Poor");n#語句會將向量編碼為(3,2,1,3)nstatus <- factor(status,orderd=TRUE)n
並在內部將這些值關聯為1=Excellent、2=Improved、3=Poor。另外,針對此向量進行的任何分析都會將其作為有序型變數對待,並自動選擇合適的統計方法。
6、列表
列表就是一些對象的有序集合,列表允許整合若干(可能是無關的)對象到單個對象名下。例如,某個列表中可能是若干向量、矩陣、數據框,甚至是其他列表的組合,可以用韓束list()創建列表:
mylist <- list(object1,object2,...)n
三、小結
數據的準備可能是數據分析中最具挑戰性的任務之一,本文簡單介紹了如何用R進行數據的讀取和分類處理,事實上,R提供了豐富的函數用以訪問外部數據,包括文本文件、網頁、統計軟體電子表格和資料庫的數據,希望以後能系統地實踐下從不同渠道獲取數據。總之,在工具的使用上一定要勤加練習,尤其對於初學者來說。
推薦閱讀:
※2017.07大數據入門學習計劃
※編寫R語言的樂趣 --第二關:數據結構入門
※HR Analyse
※如何判斷一 部電影值不值得看?
※R的矩陣相乘/逆矩陣