數據分析第二關
因為我以前就了解R語言,所以這一關對我來說挺簡單的,我溫習了一下R語言實戰里的代碼和大家分享。
R擁有許多用於存儲數據的對象類型,包括標量、向量、矩陣、數組、數據框和列表。它們 在存儲數據的類型、創建方式、結構複雜度,以及用於定位和訪問其中個別元素的標記等方面均 有所不同。下圖給出了這些數據結構的一個示意圖。
1.向量是用於存儲數值型、字元型或邏輯型數據的一維數組。執行組合功能的函數c()可用來 創建向量。各類向量如下例所示:
a<-c(1,2,3,4)#數值型向量
b<-c("數","據","分","析")#字元型向量
c<-c("TRUE","FALSE")#字元型向量
2.矩陣是一個二維數組,只是每個元素都擁有相同的模式(數值型、字元型或邏輯型)。可通 過函數matrix創建矩陣。
y<-matrix(1:20,nrow=4,ncol=4);y #nrow表示行數,ncol表示列數
cells<-c(1,26,24,28)
rnames<-c("R1","R2")#行名
cnames<-c("C1","C2")#列名
mymatrix<-matrix(cells,nrow=2,ncol=2,byrow=TRUE,dimnames = list(rnames,cnames))
mymatrix#byrow=TRUE表示按行填充,默認是按列填充;dimnames表示行名和列名
運行結果:
##矩陣下標的使用
x<-matrix(1:10,nrow=2);x
x[2,]#提取第二行
x[,2]#提取第二列
x[1,c(4,5)]#提取第一行第4,5列
3.數組(array)與矩陣類似,但是維度可以大於2,數組可通過array函數創建:
##array數組
myarray<-array(vector,dimensions,dimnames)#dimensions(尺度)是數值型向量,給出了各個維度下標的最大
#創建(2*3*4)三維數值型數組的向量
dim1<-c("A1","A2")
dim2<-c("B1","B2","B3")
dim3<-c("C1","C2","C3","C4")
z<-array(1:24,c(2,3,4),dimnames=list(dim1,dim2,dim3));z
z[1,2,3]#1是dim1,2是dim2,3是dim3
4.數據框:由於不同的列可以包含不同模式(數值型、字元型等)的數據,數據框的概念較矩陣來說更 為一般。它與你通常在SAS、SPSS和Stata中看到的數據集類似。
# creating a dataframenpatientID <- c(1, 2, 3, 4)nage <- c(25, 34, 28, 52)ndiabetes <- c("Type1", "Type2", "Type1", "Type1")nstatus <- c("Poor", "Improved", "Excellent", "Poor")npatientdata <- data.frame(patientID, age, diabetes, status)npatientdatan patientID age diabetes statusn1 1 25 Type1 Poorn2 2 34 Type2 Improvedn3 3 28 Type1 Excellentn4 4 52 Type1 Poornn# Specifying elements of a dataframenpatientdata[1:2]n patientID agen1 1 25n2 2 34n3 3 28n4 4 52npatientdata[c("diabetes","status")]n diabetes statusn1 Type1 Poorn2 Type2 Improvedn3 Type1 Excellentn4 Type1 Poornpatientdata$agen[1] 25 34 28 52 處理的 數據結構。 n
5.列表(list)是R的數據類型中為複雜的一種。一般來說,列表就是一些對象(或成分, component)的有序集合。列表允許你整合若干(可能無關的)對象到單個對象名下。例如,某個 列表中可能是若干向量、矩陣、數據框,甚至其他列表的組合。可以使用函數list()創建列表:
# Listing 2.7 - Creating a listng <- "My First List"nh <- c(25, 26, 18, 39)nj <- matrix(1:10, nrow=5)nk <- c("one", "two", "three")nmylist <- list(title=g, ages=h, j, k)n$titlen[1] "My First List"nn$agesn[1] 25 26 18 39nn[[3]]n [,1] [,2]n[1,] 1 6n[2,] 2 7n[3,] 3 8n[4,] 4 9n[5,] 5 10nn[[4]]n[1] "one" "two" "three" n
推薦閱讀:
※急速入門Python數據分析(1)--常見的Python數據科學庫
※如何七周成為數據分析師(附視頻教程)
※數據分析八大禁忌,數據分析師必看的避邪寶典
※34歲轉行數據分析師靠譜么?
※軟硬兼備方能成為一名合格的數據分析師