第二章 R语言数据结构

时间:2023-03-08 17:41:15

R语言存储数据的结构包括:标量、向量、矩阵、数组、数据框和列表;可以处理的数据类型包括:数值型、字符型、逻辑型、复数型和原生型。

数据结构

向量

向量是用来存储数值型、字符型或逻辑型数据的一维数组。单个向量中的数据类型必须一致。

a <- c(1,2,3,4,5,6)
b <- c("one","two","three")
c <- c(TRUE,TRUE,FALSE)
矩阵

矩阵是一个二维数组,每个元素的数据类型一致。

> y <- matrix(1:20,nrow = 4,ncol = 5);
> y
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
数组

数组与矩阵类似,但是维度可以大于2。像矩阵一样,数组中的元素类型也必须一致。

> 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
, , C1 B1 B2 B3
A1 1 3 5
A2 2 4 6 , , C2 B1 B2 B3
A1 7 9 11
A2 8 10 12 , , C3 B1 B2 B3
A1 13 15 17
A2 14 16 18 , , C4 B1 B2 B3
A1 19 21 23
A2 20 22 24
数据框

数据框不同的列可以包含不同类型的数据,相对于数组,数据框更加灵活。

> partionId <- c(1,2,3,4);
> age <- c(22,33,45,67);
> diabetes <- c("Type1","Type2","Type1","Type1");
> status <- c("Poor","Good","Excellent","Perfect");
> partionData <- data.frame(partionId,age,diabetes,status);
> partionData
partionId age diabetes status
1 1 22 Type1 Poor
2 2 33 Type2 Good
3 3 45 Type1 Excellent
4 4 67 Type1 Perfect
列表

列表是R语言中数据类型最复杂的一种。

> g <- "My First Class!";
> h <- c(1,2,3,4,5,6);
> j <- matrix(1:10,nrow = 10);
> k <- c("one","two","three");
> mylist <- list(title=g,ages=h,j,k);
> mylist
$title
[1] "My First Class!" $ages
[1] 1 2 3 4 5 6 [[3]]
[,1]
[1,] 1
[2,] 2
[3,] 3
[4,] 4
[5,] 5
[6,] 6
[7,] 7
[8,] 8
[9,] 9
[10,] 10 [[4]]
[1] "one" "two" "three"