基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)
R語(yǔ)言中主要有向量(vector),矩陣(matrix)滑燃,列表(list)次乓,數(shù)據(jù)框(data frame),數(shù)組(array)雳窟, 因子(factor)六種數(shù)據(jù)結(jié)構(gòu)尊浪。
1.向量(vector)
向量是用來(lái)存儲(chǔ)數(shù)值型、字符型或邏輯型數(shù)據(jù)的一維數(shù)組。單個(gè)向量中的數(shù)據(jù)類(lèi)型必須一致拇涤。創(chuàng)建向量使用c捣作,訪問(wèn)向量中的元素用[],R語(yǔ)言的索引是從1開(kāi)始的鹅士。
> a <- c(1, 2, 3, 4)
> a[3]
[1] 3
> a[1:3]
[1] 1 2 3
2.數(shù)組(array)與矩陣(matrix)
數(shù)組創(chuàng)建使用array()
券躁,訪問(wèn)數(shù)組中的元素與訪問(wèn)向量中的元素類(lèi)似。
array(data = NA, dim = length(data), dimnames = NULL)
> a <- array(1:6, c(2, 3))
> a
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
矩陣是二維數(shù)組掉盅,其內(nèi)容也可以是數(shù)值也拜、字符或布爾值,與向量相同怔接,所有數(shù)據(jù)的類(lèi)似必須一致搪泳。創(chuàng)建矩陣使用matrix()
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)
> a <- matrix(1:8, 2, 4)
> a
[,1] [,2] [,3] [,4]
[1,] 1 3 5 7
[2,] 2 4 6 8
使用矩陣可以方便的進(jìn)行計(jì)算,在定義兩個(gè)同維度的矩陣a和b后扼脐,可以進(jìn)行a/2岸军, a*2, a+b瓦侮, a-b等運(yùn)算艰赞。
3.列表(list)
列表是R語(yǔ)言中最復(fù)雜的數(shù)據(jù)結(jié)構(gòu),允許任何數(shù)據(jù)類(lèi)型的數(shù)據(jù)集合在一起肚吏,用list()
創(chuàng)建方妖。
> a <- c("a, b, c")
> b <- matrix(1:4, c(2, 2))
> mylist <- list(a, b)
> mylist
[[1]]
[1] "a, b, c"
[[2]]
[,1] [,2]
[1,] 1 3
[2,] 2 4
4.數(shù)據(jù)框(data frame)
數(shù)據(jù)框是我在使用R語(yǔ)言中使用較多的一種數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)框不同的列可以包含不同的數(shù)據(jù)類(lèi)型罚攀,數(shù)據(jù)框使用data.frame()
創(chuàng)建党觅。
> ID <- c(1, 2, 3)
> gender <- c("female", "male", "male")
> age <- c(22, 45, 89)
> mydata <- data.frame(ID, gender, age)
> mydata
ID gender age
1 1 female 22
2 2 male 45
3 3 male 89