负基础的R语言学习笔记.向量和矩阵及索引
前言
在多数数学建模应用中,向量、矩阵操作是基础,本篇是矩阵和向量创建及索引的一些内容:
确认变量数据类型: class() , typeof()
一、向量:vector
使用c( )创建向量. c( )会将括号内的参数拼接成一个行向量。
v1 = c(1,2,3) ; v2 = c(5,5,5);v3 = c(v1,v2);
通过 c(i:j) 创建一个序列:
v4 = 1:10; v5 = 0.1:10;
通过seq()创建数列:
v6=seq(1,19,by=3); #创建一个从1到19公差为3的数列。
二、矩阵:matrix
1.矩阵通过matrix()函数进行创建
用法:
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)
(1) data:用于填充矩阵的向量
(2) nrow,ncol: 行数和列数
(3) byrow: TRUE or FALSE, 是否按行填充
(4) dimnames: 行名和列名(可选)
v=c(1:20); M=matrix(data=v,nrow=4,ncol=5,byrow=TRUE);
2.通过rbind(), cbind()函数将向量拼成矩阵
mr=rbind(v1,v2);mc=cbind(v1,v2);
三、索引
v1=(1,2,3,4,5) v2=(1,3,5,7,9) M=rbind(v1,v2)
1.通过方括号[]检索某个元素
v1[i] #向量v1的第i个分量.
v1[i,j] #向量v1从i到j的分量.
v1[-i] #去掉除第i个分量之后的剩余元素.
M[i,j] #矩阵M的第i行第j列元素.
M[i, ] #矩阵的第i行向量.
M[ ,j] #矩阵的第j列向量.
M[-i,-j] #去掉矩阵的第i行和第j列.
2.逻辑
v1[v1<3] #v1中所有小于3的元素.
M[M<5] #矩阵M中所有小于5的元素,返回结果是一个向量.
3.使用which()查找元素并返回位置.
which(v1<3);
#表示向量v1的第1个和第2个元素小于3.
which(M<6);
#表示矩阵M的第i个(按列排序)元素小于6.
#如果想要返回的是行、列坐标,可以:
which(M<6,arr.ind = TRUE);
向量索引和矩阵索引方法基本上相同,维度不一样.
其他
1.冒号运算符 “:”
用于产生一个序列: 如1:5代表从1到5的序列. 5:1则是从5到1的序列。
步长为1.
在循环语句中用得很多。