第二講實踐:數據結構入門

一、數據讀取

讀取方法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的矩陣相乘/逆矩陣

TAG:数据分析 | R编程语言 | 大数据 |