R语言
一、向量补充内容,矩阵补充内容
> 1:10
[1] 1 2 3 4 5 6 7 8 9 10 #输出1到10的元素
> 1:10-1
[1]0 1 2 3 4 5 6 7 8 9 #输出1到10的元素并且减去最后第10个元素
> 1:10*2 #输出1到10的元素,并且每个元素乘以2
[1] 2 4 6 8 1012 14 16 18 20
> 2:60*2+1 #输出2到60的元素,并且每个元素乘以2再加上1
[1] 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41
[20] 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79
[39] 81 83 85 87 89 91 93 95 97 99101 103 105 107 109 111 113 115 117
[58] 119 121
> a=2:60*2+1
> a
[1] 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41
[20] 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79
[39] 81 83 85 87 89 91 93 95 97 99101 103 105 107 109 111 113 115 117
[58] 119 121
> a[5] #输出a中的第5个元素
[1] 13
> a[-5] #除了a中的第5个元素不显示其余全部输出
[1] 5 7 9 11 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43
[20] 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81
[39] 83 85 87 89 91 93 95 97 99101 103 105 107 109 111 113 115 117 119
[58] 121
> a[1:5] #输出a中第1个元素到第5个元素全部显示出来
[1] 5 7 9 11 13
> a[-(1:5)] #输出除了第1个元素到第5个元素,其余全部输出
[1] 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51
[20] 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89
[39] 91 93 95 97 99 101 103 105 107 109 111 113115 117 119 121
> a[c(2,4,7)] #输出向量中第2个元素、第4个元素、第7个元素的值
[1] 7 11 17
> a[3:8] #输出第3个元素到第8个元素的值
[1] 9 11 13 15 17 19
> a[a<20] #输出a中的a小于20的元素输出
[1] 5 7 9 11 13 15 17 19
> a[a>30 & a<50] #输出a中a大于30且小于50的元素输出
[1]31 33 35 37 39 41 43 45 47 49
二、seq()函数使用按照指定的规律输出
> seq(5,20) #输出从5开始到20的元素,它是以公差1进行执行
[1] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1920
> seq(5,121,by=2) #输出从5开始到121的元素,并且使用by=2(公差2进行执行)
[1] 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41
[20] 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79
[39] 81 83 85 87 89 91 93 95 97 99 101 103 105 107 109 111 113 115 117
[58] 119 121
> seq(5,121,length=10) #从第5个元素到121元素中自动去出10个元素算出它们的公差
[1] 5.00000 17.88889 30.77778 43.66667 56.55556 69.44444 82.33333
[8] 95.22222 108.11111 121.00000
三、产生字母序列letters 固定的向量名,里面通常用的是26个字母
> letters[1:30]
[1]"a" "b" "c" "d" "e""f" "g" "h" "i" "j""k" "l" "m" "n" "o" "p""q" "r" "s"
[20] "t" "u""v" "w" "x" "y" "z" NA NA NA NA
四、which() 函数
> a = c(2,3,4,2,5,1,6,3,2,5,8,5,7,3) #定义一个向量为a并赋值
> which.max(a) #返回最大元素值的下标(注意这是下标)
[1] 11
> which.min(a) #返回最小元素值的下标
[1] 6
> a[which.max(a)] #返回a对应的最大元素下标的值(注意这是下标的值)
[1] 8
> which(a==2) #返回a等于2的下标
[1] 1 4 9
> which(a>5) #返回a大于5的元素下标
[1] 7 11 13
五、rev()函数,sort()函数
> a=1:20
> a
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
> rev(a) #将a向量进行颠倒输出
[1]20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
> a=c(2,3,4,2,5,1,6,3,2,5,8,5,7,3)
> sort(a) #将a向量进行排序
[1]1 2 2 2 3 3 3 4 5 5 5 6 7 8
六、matrix() 生成矩阵的函数
> a1=c(1:12) #输出a1向量1到12
> matrix(a1,nrow=3,ncol=4) #利用a1来生成一个矩阵,nrow=3是3行的,ncol=4是4列
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
> matrix(a1,nrow=4,ncol=3,byrow=T) #byrow=T是按照行来输出
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9
[4,] 10 11 12
七、t ()函数,矩阵加减
> a=matrix(a1,nrow=3,ncol=4)
> a
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
> t(a) #将列输出的改为行输出(转置输出)
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9
[4,] 10 11 12
> a=b=matrix(1:12,nrow=3,ncol=4) #将a的矩阵+b的矩阵输出新的矩阵
> a+b
[,1] [,2] [,3] [,4]
[1,] 2 8 14 20
[2,] 4 10 16 22
[3,] 6 12 18 24
八、矩阵相乘,diag()函数
> a=matrix(1:12,nrow=3,ncol=4)
> b=matrix(1:12,nrow=4,ncol=3)
> a%*%b
[,1] [,2] [,3]
[1,] 70 158 246
[2,] 80 184 288
[3,] 90 210 330
> a=matrix(1:16,nrow=4,ncol=4)
> a
[,1] [,2] [,3] [,4]
[1,] 1 5 9 13
[2,] 2 6 10 14
[3,] 3 7 11 15
[4,] 4 8 12 16
> diag(a) #输出a的对角线的元素
[1] 1 6 11 16
> diag(4) #输出4接的对角线矩阵
[,1] [,2] [,3] [,4]
[1,] 1 0 0 0
[2,] 0 1 0 0
[3,] 0 0 1 0
[4,] 0 0 0 1
九、矩阵求逆,rnorm(),solve() 函数
> a=matrix(rnorm(16),4,4) #rnorm(16) 使用正态分布产生16个点的随机数4行4列
> a
[,1] [,2] [,3] [,4]
[1,] 0.1186737 -0.2329563 -0.2895613 0.09724836
[2,] 1.1655629 1.4100980 1.0455310 0.23569866
[3,] 0.2507595 -0.4479965 0.1312116 -0.33605265
[4,] 0.5013942 0.0905529 -0.1048480 0.32511665
> solve(a) #输出立矩阵使用solve函数
[,1] [,2] [,3] [,4]
[1,] 3.985808 0.907088 0.5165262 -1.315936
[2,] 7.858242 1.841710 -1.6009949-5.340570
[3,] -12.270522 -1.964825 1.5498019 6.696703
[4,] -12.292779 -2.545513 0.1491313 8.752374
十、解析性方乘组,solve(a,b) 函数
> a=matrix(rnorm(16),4,4)
> a
[,1] [,2] [,3] [,4]
[1,] 0.6655258 0.7331254 -0.78801830.8556388
[2,] -2.1513861 0.1020709 0.8210317 0.5711970
[3,] -0.5653800 1.5251885 -0.2466422 0.7837121
[4,] 0.8189911 -0.1839945 -1.5230336 1.1184135
> b=c(1:4)
> b
[1] 1 2 3 4
> solve(a,b)
[1] -3.9433724 0.5968244 -6.4376567 -2.2043442
方程组解法是如:0.6655258*x1加 0.7331254*x2减0.7880183*x3 加0.8556388*x4
以此类推最后使用solve(a,b)
十一、矩阵的特征值与特征向量,eigen() 函数
> a=diag(4)+1
> a #输出对角线的值
[,1] [,2] [,3] [,4]
[1,] 2 1 1 1
[2,] 1 2 1 1
[3,] 1 1 2 1
[4,] 1 1 1 2
>a.e=eigen(a,symmetric=T) #输出特征值
> a.e
$values
[1] 5 1 1 1
$vectors
[,1] [,2] [,3] [,4]
[1,] -0.5 0.8660254 0.0000000 0.0000000
[2,] -0.5 -0.2886751-0.5773503 -0.5773503
[3,] -0.5 -0.2886751-0.2113249 0.7886751
[4,] -0.5-0.2886751 0.7886751 -0.2113249