2023年R语言学习过程各种笔记.doc
《2023年R语言学习过程各种笔记.doc》由会员分享,可在线阅读,更多相关《2023年R语言学习过程各种笔记.doc(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据挖掘与数据分析的重要区别是什么?数据分析就是为了解决原有计算方法、记录方法,着重点就是数据、算法、记录、数值。数据挖掘是从庞大的数据库中分析出有目的数据群,筛选出利于决策的有效信息简朴来说就是数据分析是针对以往取得的成绩,比如说哪方面做得好,哪方面需要改善;数据挖掘就是通过以前的成绩预测未来的发展的趋势,并且为决策者提供建议。读excel时可以先复制再运营data - read.table(clipboard, header = T, sep = t)在R语言中,使用“=”和“-”到底有什么不同? 就是等号和箭头号有什么区别,是完全同样还是局部不同?R里通常用符号”-”代替其它语言里的”=
2、”来作赋值符号。由于前者敲起来比等号要麻烦,且大部分情况下两者是等价的,所以通常就愉懒依旧用”=”来赋值。但要牢记两者在某些时候是有区别的。字面上的解释,可以认为”-”是赋值,”=”是传值。在函数调用中,func(x=1)与func(x-1)是有区别的,前者调用完后变量x不会被保存,而后者会在工作区里保存变量x=1。再如length(x=seq(1,10)计算完毕后x不会被保存,而length(x z=1:12; dim(z)=c(3,4); z; ,1 ,2 ,3 ,41, 1 4 7 102, 2 5 8 113, 3 6 9 12 注意:生成矩阵是按列排列的。1_2用array ( )函
3、数构造多维数组 用法为:array(data=NA,dim=length(data),dimnames=NULL) 参数描述:data:是一个向量数据。 dim:是数组各维的长度,缺省时为原向量的长度。 dimname:是数组维的名字,缺省时为空。 例子: x=array(1:20,dim=c(4,5) x ,1 ,2 ,3 ,4 ,51, 1 5 9 13 172, 2 6 10 14 183, 3 7 11 15 194, 4 8 12 16 201_3用matrix()函数构造矩阵 函数matrix)是构造矩阵(二维数组)的函数,其构造形式为 matrix(data=NA,nrow=1,
4、ncol=1,byrow=FALSE,dimnames=NULL) 其中data是一个向量数据,nro、是矩阵的行数,ncol是矩阵的列数.当byrow=TRUE时,生成矩阵的数据按行放置,缺省时相称于byrow=FALSE,数据按列放置.dimname。是数组维的名字,缺省时为空. 如构造一个3x5阶的矩阵 A=matrix(1:15,nrow=3,byrow=TRUE) A ,1 ,2 ,3 ,4 ,51, 1 2 3 4 52, 6 7 8 9 103, 11 12 13 14 152_矩阵的四则运算 可以对数组之间进行四则运算(+、一、*、/),这时进行的是数组相应元素的四则运算。一般
5、情况下参与运算的矩阵或者数组的维数是相同的,但也可以计算不同维的,这是要将相应的元素补足。3_1 转置运算 对于矩阵A,函数t(A)表达矩阵A的转置,如: A=matrix(1:6,nrow=2); A; ,1 ,2 ,31, 1 3 52, 2 4 6 t(A); ,1 ,21, 1 22, 3 43, 5 63_2 求方阵的行列式 函数det()是求矩阵行列式的值,如 det(matrix(1:4,ncol=2);1 -23_3 向量的内积 对于n维向量x,可以当作nxl阶矩阵或lxn阶矩阵。若x与y是相同维数的向量,则x%*%Y表达x与y作内积.例如,x=1:5; Y=2*1:5x%*%
6、y ,11,110 函数crossprod()是内积运算函数(表达交叉乘积),crossprod(x,y)计算向量x与y的内积,即t(x) %*% y。crossprod(x)表达x与x的内积. 类似地,tcrossprod(x,y)表达x%*%t(Y),即x与y的外积,也称为叉积。tcrossprod(x)表达x与x作外积.如: x=1:5; y=2*1:5; crossprod(x); ,11, 55 crossprod(x,y); ,11, 110 tcrossprod(x); ,1 ,2 ,3 ,4 ,51, 1 2 3 4 52, 2 4 6 8 103, 3 6 9 12 154,
7、 4 8 12 16 205, 5 10 15 20 25 tcrossprod(x,y); ,1 ,2 ,3 ,4 ,51, 2 4 6 8 102, 4 8 12 16 203, 6 12 18 24 304, 8 16 24 32 405, 10 20 30 40 503_4 向量的外积(叉积)设x和y是n维向量,则x%o%y表达x与y作外积.例如 x%o%y; ,1 ,2 ,3 ,4 ,51, 2 4 6 8 102, 4 8 12 16 203, 6 12 18 24 304, 8 16 24 32 405, 10 20 30 40 50 outer()是更为强大的外积运算函数,ou
8、ter(x,y)计算向量二与y的外积,它等价于x %o%y函数。outer()的一般调用格式为 outer(x,y,fun=”*”) 其中x, y矩阵(或向量),fun是作外积运算函数,缺省值为乘法运算。函数outer()在绘制三维曲面时非常有用,它可生成一个x和y的网格。3_5 矩阵的乘法 设A和B为两个矩阵,通常意义下的矩阵乘法是通过A%*%B来完毕,crossprod(A,B)表达的是t(A)%*%B,而tcrossprod(A,B)表达的是A%*%t(B)。最后我们通过运算知道x%*%A%*%x为二次型。例子: A=array(1:9,dim=(c(3,3) B=array(9:1,d
9、im=(c(3,3) A%*%B; ,1 ,2 ,31, 90 54 182, 114 69 243, 138 84 30 crossprod(A,B)=t(A)%*%B; ,1 ,2 ,31, TRUE TRUE TRUE2, TRUE TRUE TRUE3, TRUE TRUE TRUE tcrossprod(A,B)=A%*%t(B); ,1 ,2 ,31, TRUE TRUE TRUE2, TRUE TRUE TRUE3, TRUE TRUE TRUE3_6 生成对角阵和矩阵取对角运算 函数diag()依赖于它的变量,当v是一个向量时,diag(v)表达以v的元素为对角线元素的对角阵.
10、当M是一个矩阵时,则diag(M)表达的是取M对角线上的元素的向量.如 v=c(1,4,5); diag(v); ,1 ,2 ,31, 1 0 02, 0 4 03, 0 0 5 M=array(1:9,dim=c(3,3); diag(M);1 1 5 93_7 解线性方程组和求矩阵的逆矩阵(矩阵逆和矩阵的广义逆、矩阵广义逆) 若求解线性方程组Ax=b,其命令形式为solve(A,b),求矩阵A的逆,其命令形式为solve(A).设矩阵A=t(array(c(1:8,10),dim=c(3,3),b A=t(array(c(1:8,10),dim=c(3,3); b=c(1,1,1); x=
11、solve(A,b); x;1 -1.000000e+00 1.000000e+00 3.806634e-16 solve(A); ,1 ,2 ,31, -0.6666667 -1.333333 12, -0.6666667 3.666667 -23, 1.0000000 -2.000000 1矩阵的广义阵:ginv(A)3_8 求矩阵的特性值与特性向量 函数eigen(Sm)是求对称矩阵Sm的特性值与特性向量,其命令形式为:ev=eigen(Sm),则ev存放着对称矩阵Sm特性值和特性向量,是由列表形式给出的,其中ev$values是Sm的特性值构成的向量,ev$vectors是Sm的特性向
12、量构成的矩阵.如 Sm=crossprod(A,A); ev=eigen(Sm); ev;$values1 303.19533618 0.76590739 0.03875643$vectors ,1 ,2 ,31, -0.4646675 0. 0.29952952, -0.5537546 -0. -0.83262583, -0.6909703 -0. 0.46585024_1 特性值分解(1).定义: 对N阶方阵A,x为标量,v是非零的N维列向量,且满足Ax=xv ,则称x为矩阵A的特性值,v 是相相应于x 的特性向量。特性值的全体成为A的谱。(2).在r中的实现:在r中运用函数eigen(A
13、)来求矩阵的特性值和特性向量,具体的调用格式为:以矩阵A为例说明此问题 A=array(c(1,1,1,4,2,1,9,3,1),dim=c(3,3); D=eigen(A); D;$values1 5.8284271 -2.0000000 0.1715729$vectors ,1 ,2 ,31, -0.8597736 -9.486833e-01 0.53848202, -0.4346498 6.474883e-17 -0.78729383, -0.2680839 3.162278e-01 0.3003425(3).特性值分解的性质:我们知道当所求的的特性向量构成的矩阵可逆时会满足solve(
14、vectors)%*%A%*%vectors=diag(values),下面进行验证。 solve(vectors)%*%A%*%vectors; ,1 ,2 ,31, 5.828427e+00 8.339683e-16 -1.285213e-152, 1.211325e-15 -2.000000e+00 2.704000e-163, -3.471971e-16 -1.607126e-16 1.715729e-01结果的精度还是比较高的。4_2 矩阵的奇异值分解 函数svd(A)是对矩阵A作奇异值分解,即A =U%*%D%*%t(V),其中U, V是正交阵,D为对角阵,也就是矩阵A的奇异值.s
15、vd(A)的返回值也是列表,svd(A)$d表达矩阵A的奇异值,即矩阵D的对角线上的元素.svd(A)$u相应的是正交阵U, svd(A) $v相应的是正交阵V.例如, A SVD=svd(A); SVD;$d1 17.4125052 0.8751614 0.1968665$u ,1 ,2 ,31, -0.2093373 0.96438514 0.16167622, -0.5038485 0.03532145 -0.86306963, -0.8380421 -0.26213299 0.4785099$v ,1 ,2 ,31, -0.4646675 -0. 0.29952952, -0.5537
16、546 0. -0.83262583, -0.6909703 0. 0.4658502 attach(SVD);The following object(s) are masked from SVD (position 3): d, u, v u%*%diag(d)%*%t(v); ,1 ,2 ,31, 1 2 32, 4 5 63, 7 8 10 A; ,1 ,2 ,31, 1 2 32, 4 5 63, 7 8 104_3 qr分解 设A为m*n矩阵,假如存在m*m酉矩阵Q(即Q(H)Q=QQ(H)=I)和m*n阶梯形矩阵R,使得A=QR,那么此分解称为QR分解。QR分解在解决最小二乘问题
17、、特性值计算等方面有着十分重要的作用。#建立矩阵 A=(array(c(1:12),dim=c(4,3); A; ,1 ,2 ,31, 1 5 92, 2 6 103, 3 7 114, 4 8 12#进行矩阵分解 QR=qr(A);QR$qr ,1 ,2 ,31, -5.4772256 -12.7801930 -2.008316e+012, 0.3651484 -3.2659863 -6.531973e+003, 0.5477226 -0.3781696 7.880925e-164, 0.7302967 -0.9124744 9.277920e-01$rank1 2$qraux1 1.182
18、574 1.156135 1.373098$pivot1 1 2 3attr(,class)1 qr#提取Q,R并验证分解的对的性。 Q=qr.Q(QR); R=qr.R(QR); Q%*%R; ,1 ,2 ,31, 1 5 92, 2 6 103, 3 7 114, 4 8 12矩阵的秩:4_4 Schur分解引言: 从特性值的分解中可以看出,特性值的分解是有条件的,假如特性向量不是线性无关的,那么对于一个矩阵来说便不能采用特性值分解的方法对矩阵进行分解。例如对于矩阵A=t(array(c(6,12,19,-9,-20,-33,4,9,15),dim=c(3,3)进行特性值分解有: A=t(
19、array(c(6,12,19,-9,-20,-33,4,9,15),dim=c(3,3); A; ,1 ,2 ,31, 6 12 192, -9 -20 -333, 4 9 15 det(A);1 -1 W=eigen(A); W;$values1 1+0i 1-0i -1+0i$vectors ,1 ,2 ,31, -0.4082483-0i -0.4082483+0i -0.4740998+0i2, 0.8164966+0i 0.8164966+0i 0.8127426+0i3, -0.4082483+0i -0.4082483-0i -0.3386427+0i attach(W);Th
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 语言 学习 过程 各种 笔记
限制150内