R語言數據結構入門實踐筆記

新年伊始就出了一趟遠差,在依然出差中的周末偷得半日閑將第二講的音頻以及實踐筆記完成。

  • 聽課筆記

以下是聽課期間胡亂作的筆記,不在於能夠完全記錄下所有內容,僅在於能夠在聽課的過程當中調動所有的感官以提高專註程度並在輸入的時候同時進行輸出,鍛煉大腦協同處理能力,增加學習效果。

PS:字實在寫得一般甚至有些錯別字,大家見笑了,不過我會繼續努力提高的!

  • 課程內容

什麼是數據結構?

按照維基百科(zh.wikipedia.org/wiki/%)的定義,在計算機科學中,數據結構(英語:data structure)是計算機中存儲、組織數據的方式。

常見的數據結構主要有:

  • 數組(Array)
  • 堆棧(Stack)
  • 隊列(Queue)
  • 鏈表(Linked List)
  • 樹(Tree)
  • 圖(Graph)
  • 堆(Heap)
  • 散列表(Hash)

數據結構可透過程序語言所提供的數據類型、引用及其他操作加以實現。

從以上的定義和描述中我們不難發現,數據結構應該需要滿足一定規則,並且可以由不同的編程語言進行實現。考慮到本課程以R語言學習為主,以下著重介紹R語言所提供的不同數據類型。

R語言數據類型

簡單總結一下:

向量(vector)、矩陣(matrix)以及數組(array)用於保存同一種數據類型的數據,而數據框(data.frame)和列表(list)可以保存、組織不同類型的數據,在後續的數據分析中較為常用。

順便再提兩句因子(factor),因子是一個僅包含預設值的向量,用來存儲分類數據。以本次主講內容為例,對於status和diabetes這兩個向量(vector)可以進行因子化處理,賦予每一種分類數據為一個整數。

  • 課後實踐

本次實踐的主要難點在於如何導入xlsx文件的數據。R語言提供了適用範圍廣泛的數據導入工具,針對xlsx文件可以有兩種辦法。第一種是將xlsx轉換為csv文件,然後用read.table()函數導入,語法如下:

mydataframe <- read.table(file, options)

第二種方法是用xlsx包直接導入Excel工作表,主要步驟如下:

#安裝xlsx包

install.packages(xlsx)

#載入xlsx包

library(xlsx)

#設置xlsx文件所在路徑

filepath <- "D:/workspace/DA-1/病例數據.xlsx"

#導入xlsx文件並設置編碼為UTF-8,以免出現亂碼

patientdataframe <- read.xlsx(filepath,1,encoding = "UTF-8")

數據導入以後,可以運用本講的知識快速完成課後的實踐練習,主要代碼如下:

#分析病人數目

patientdataframe.number <- nrow(patientdataframe)

#分析1型糖尿病病人數目

type1 <- patientdataframe[patientdataframe$糖尿病類型=="1型糖尿病",]

為了得到正確的結果,特別主要第二行代碼當中在==「1型糖尿病」後面不要忘記加上「,」 。


推薦閱讀:

C語言實現數據結構-隊列
九章演算法 | Snapchat 面試題 : 青蛙跳
九章演算法 | Google 2016 面試題7:翻轉遊戲(Flip Game II)
九章演算法 | Facebook面試題3 : Search a 2D Matrix II
九章演算法 | Google面試題 : 路線重現

TAG:R编程语言 | 数据结构 |