R具有許多用于存儲數據的對象類型,包括標量、向量、矩陣、數組、數據框和列表
1 標量
標量是只含1個元素的向量,例如a<- 3、b <- "US"和c <- TRUE。它們用于保存常量
2 向量
R中的向量可以理解為1維的數組,每一個元素的mode必須相同.
函數c,是組合函數,可以用創建數組,如
x <- c(10:19)
b <- c("one", "two", "three")
x[2] 訪問數組中第2個元素。這里沒有下標,從 1 開始計算距離
x[c(2:4)] 訪問數組中第2到4個元素
x[c(2,4)] 訪問數組中第2個和第4個元素
3 矩陣
可以理解為2維數組,每個元素必須要有相同的mode,使用matrix進行創建,matrix的情勢為:
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,
dimnames = NULL)
該函數中,vector中為矩陣的元素,nrow表示行數,ncol表示列數,byrow為1個布爾向量表示是不是依照行動主進行填充,默許依照列為主,dimnames為可選的制定行和列的名稱。
mdat <- matrix(c(1,2,3, 11,12,13), nrow = 2, ncol = 3, byrow =TRUE,dimnames = list(c("row1", "row2"),c("C.1", "C.2", "C.3")))
mdat[2, ] 表示選取矩陣第1行元素mdat[, 2] 表示選取矩陣第2列元素mdat[1, 2] 表示選取矩陣第1行第2列元素mdat[1, c(1, 2)] 表示選取矩陣第1行的第1個第2個元素
數組使用array進行創建,與向量或矩陣不同的是,array可以是多維的。array中的數據一樣是相同mode的,array函數的像是以下:
array(data = NA, dim = length(data), dimnames = NULL),
其中vector包括array中的元素,dim是1個向量指定array各個維度的大小,dimnames是1個list指定各個維度對應的名稱。
5 數據框:dim1 <- c("A1", "A2")
dim2 <- c("B1", "B2", "B3")
dim3 <- c("C1", "C2", "C3", "C4")
z <- array(1:24, c(2, 3, 4), list(dim1, dim2, dim3))
z[1,2,3] 為 15 表示選取 x=1 y=2 z=3 的值,只有這1種選取方式
數據框是我們經常使用的進行數據分析的數據存儲方式,和數據庫的每行對應1個記錄,每列對應1個字段,數據框使用data.frame(name1=col1, name2=col2,...)進行創建,注意是列主導。
patientID <- c(1, 2, 3, 4)
age <- c(25, 34, 28, 52)
diabetes <- c("Type1", "Type2", "Type1", "Type1")
status <- c("Poor", "Improved", "Excellent", "Poor")
p <- data.frame(patientID, age, diabetes,status,row.names=c('a','b','c','d'))
p[1:2] 表示選取第1列第2列數據
p[c("a"),c("diabetes", "status")] 選取列表為"diabetes", "status",行名為"a"的數據
6 列表:
據類型中最為復雜的1種。1般來講,列表就是1些對象(或成份,component)的有序集合。列表允許你整合若干(可能無關的)對象到單個對象名下。例如,某個列表中多是若干向量、矩陣、數據框,乃至其他列表的組合。列表和Python中的dict很像,使用list進行創建,是行動主導的,list的情勢為list(name1=object1, name2=object2,...)。
g <- "My First List"
h <- c(25, 26, 18, 39)
j <- matrix(1:10, nrow = 5)
k <- c("one", "two", "three")
mylist <- list(title = g, ages = h, j, k)
mylist[['ages']][1] 獲得名稱ages的元素的第1個數據
mylist[c(1,2)] 取得第1個元素和第2個元素
實操進程以下:
版權聲明:本文為博主原創文章,未經博主允許不得轉載。