數據集
R擁有許多用於儲存數據的對象類型,包括標量、向量、矩陣、數組、數據框和列表。各種數據結構的類型示意圖如下:
上述的各種數據結構可以處理的數據類型包括:數值型、字元型、邏輯型、複數型(虛數)和原生型(位元組)。
R中有些較為獨特的術語可能會對新用戶造成影響,在這裡強調一下。
對象(object)是指可以賦值給變數的任何事物,包括常量、數據結構、函數,甚至是圖形。對象都擁有某種模式,描述了對象是如何儲存的,以及某個類,像print這樣的泛型函數辨明如何處理此對象。
數據框(data frame)是用於存儲數據的一種結構:列表示變數,行表示觀測。在一個數據框中可以存儲不同類型的變數。數據框是我們用來存儲數據的主要數據結構。
因子(factor)是名義型變數或有序型變數。它在R中被特殊的存儲和處理。
各種數據結構的實例:
1.向量及常量:a <- c(1, 2, 5, 3, 6, -2, 4) #數值型 f<-3nb <- c("one", "two", "three")# 字元型 g<-"WE"nc <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE) #邏輯型 h<-FALSEn
y <- matrix(1:20, nrow = 5, ncol = 4) #創建一個矩陣,取數1~20,5行4列ny #輸出yncells <- c(1, 26, 24, 68)# 創建向量nrnames <- c("R1", "R2") #行名ncnames <- c("C1", "C2") #列名nmymatrix <- matrix(cells, nrow = 2, ncol = 2, byrow = TRUE, ndimnames = list(rnames, cnames)) #創建矩陣,從cells裡面取數,2行2列,按行填充,行名和列名分別是R1、R2、C1、C2nmymatrix #輸出矩陣nmymatrix <- matrix(cells, nrow = 2, ncol = 2, byrow = FALSE, ndimnames = list(rnames, cnames)) #。。。按列填充。。。nmymatrix #輸出矩陣n
3.數組
dim1 <- c("A1", "A2")ndim2 <- c("B1", "B2", "B3")ndim3 <- c("C1", "C2", "C3", "C4") #創建3個向量,分別是dim1、dim2、dim3nz <- array(1:24, c(2, 3, 4), dimnames = list(dim1, ndim2, dim3)) #創建數組,從1~24中取數,2行3列4組nz #輸出數組n
4.數據框
patientID <- c(1, 2, 3, 4)nage <- c(25, 34, 28, 52)ndiabetes <- c("Type1", "Type2", "Type1", "Type1")nstatus <- c("Poor", "Improved", "Excellent", "Poor")#分別創建2個數值型向量和2個字元型向量npatientdata <- data.frame(patientID, age, diabetes, n status)#創建數據框,第1列至第4列分別是patientID、age、diabetes、status npatientdata#輸出數據框n
5.列表
g <- "My First List"#創建字元型常量nh <- c(25, 26, 18, 39)#創建數值型向量nj <- matrix(1:10, nrow = 5)#創建矩陣,從1~10中取數,5行2列,默認按列填充nk <- c("one", "two", "three")#創建字元型向量nmylist <- list(title = g, ages = h, j, k)#創建列表nmylist#輸出列表n
快速訪問指定數據:
使用方括弧[ ],我們可以直接訪問向量中的元素,例如a[c(2,4)]用於訪問向量c中第二個和第四個元素。
使用美元符號$,我們可以訪問數據框中的特定變數,例如patientdata$age則表示訪問數據框patientdata中的age。
使用雙重方括弧[ [ ] ],我們可以直接訪問列表中的特定變數,例如mylist[ ["age"] ]表示訪問列表mylist中的age。
我的拖延症有點嚴重,上周本應該寫一篇學習總結的,但是沒完成任務,抽時間要反思一下拖延的原因,找到合適的方法讓自己持續不斷的輸出。
只要智力不低於常人,通過刻意練習,就能習得自己想要學會的技能,加油!2017.01.22
推薦閱讀:
※在海外的工作經驗會成為回國後的優勢嗎?
※在途牛工作是一種怎樣的體驗?
※你周圍有沒有看起來無所不知道,收入卻很低的人?
※如何避免成為一個高分低能的人?
※沒有國外留學背景,如何在美國找到一份合適的工作?