向量 vector
用于储存数值、字符、逻辑值的一维数据结构。
用于构建向量的函数是 R 语言中最简单的函数之一,形式为 :c()
1.单个向量中的数据必须具有相同的类型 (数值型、字符型、逻辑型)
若传入了不同类型的数据,则系统会自动进行类型转换:
(转换的顺序是 logical
3.还可以用一个向量包含多个位置索引传入中括号内,已达到一次访问多个元素的目的,如:a [ b(1,2,3) ]
4.也可使用 “切片”方式来进行多个元素的访问,这同Python一致,用冒号分隔位置索引起始与结束位置。2:4就是23元素。
5.也可同Python中的 “反向选择”,位置索引前加上’−’ 实现,其实就是反选。如:d[-(2:4)]
6.可使用数学表达式来达成某个条件匹配数据 , 如:c [c > 6]
矩阵 matrix
二维的数据结构,看作二维的向量也可。
R 中用于生成矩阵的函数是:matrix()函数,
将其它数据结构的数据转换为矩阵:通过 as.matrix() 函数
与向量类似,同一矩阵中无法同时包含不同类型的数据。
matrix0 <- matrix(vector, #matrix() 函数以一个向量为输入数据,并将该向量转换为矩阵类型;
nrow=number_of_rows, #参数nrow定义了矩阵的行数
ncol=number_of_columns, #参数ncol定义了矩阵的列数
byrow=TRUE, #先按照行来依次数据,若为false则先列
dimnames=list(char_vactor_for_row.names,#参数dimnames定义了矩阵的行、列的名称
char_vactor_for_col.names))
举例
v <- c(1:9) matrix2 <- matrix(v, nrow=3, ncol=3, byrow=TRUE) matrix2 #生成如下 ## [,1] [,2] [,3] ## [1,] 1 2 3 ## [2,] 4 5 6 ## [3,] 7 8 9
matrix3 <- matrix(v, nrow=3, ncol=3, byrow=FALSE,
dimnames=list(c("row1","row2","row3"),
c("col1","col2","col3")))
matrix3
## col1 col2 col3
## row1 1 4 7
## row2 2 5 8
## row3 3 6 9
访问和操作矩阵中的数据和向量是类似,我使用位置索引和方括号来选择矩阵中的行、列或元素。
即:M[i ,j] 指矩阵 M 的第 i 行第 j 个元素
如果省略 j,则 M[i,] 指的是矩阵 M 中第 i 行,同理 M[,j] 指的是矩阵 M 中第 j 列;
如 M[i],区别于上述逗号存在,系统返回的是矩阵的(也是构建矩阵所用向量) 第 i 个元素;
数组 array



