还剩22页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
例子#输入矩阵m=matrix c5,1,1,3,ncol=2;LU#矩阵分解CH=cholm;#验证成果tCH%*%CH;[,1]L2][2,]tapply分类汇总By函数分类汇总,分类分析对每列求种类1sapplyw,class、#运用实现类似于里的数据透视表的功能2tapply exceldasale1A12B23C34D45A56C67D78B89C910D10attachda tapplysale,listyear,province
[1]1471028116912tapplysale,listyear,province,meanA BC D12345NA67NA8910bywarpbreaks[,1],warpbreaks[,-1],summarybywarpbreaks,warpbreaks[,“tension],functionx lmbreaks〜wool,data=x
3.librarydplyrtrain_groupby_termlimit=group_byorder_train,term1,limit1termlimit=summarisetrain_groupby_termlimit,n=n数据框单列数据排序,按某列排序,order,nos=orderiris[,4],decreasing=Tiris[order,nos,]sqldf包,用R写数据库语言sqldf Cselect*from iris3where Sepal.Width”3)〃用单引号(用双引号有时不行)详细简介清除变量x=l rmxxError:object xnot foundrmx,就是四分位差,是分位值和分位值的差IQR75%25%保留小数位数optionsdigi ts=2检查与否正态shapi ro.test包里的函数都是检查与否正态的ibrarynortest;##nortest lillie.test检查#Kolmogorov-Smirnov正态性检查ad.test#Anderson-Darling正态性检查cvm.test#Cramer-von Mises卡方正态性检查pearson.test#Pearson正态性检查sf.test#Shapiro-FranciaKruskal-Wallis H检查K-S检查不仅可以检查单个总体与否服从某一理论分布,还可以检查两总体分布与否存在明显差异其原假设是两组独立样本来自的两总体的分布无明显差异kruskal.testx=M白噪声检查Box.test,作平稳性检查adfTestlogstocktsl,pp.test符串分离,字符分离分割字符串,字符串拆分字符串相加,合并字符串,字符串相加,字pastegg”,as.character2,sep=,,H
[1],,gg2H yyyyy=网站停留时间3小时,4分秒,50yyyyy-strsplitstrsplityyyyy,split=H:n[
[1]]
[2],split=小时”;yyyyy[口]]分秒”
[1]“3””450Formula编辑,函数编辑措施f=formulay-xl+x2as.formulay_star-f
[3]y_star~f
[3]确定矩阵维数x-1:10attrxJdinT-c2,5根据公式将已经有变量合成数据框根据公式将已经有变量合成根据将已经有变量合成数据框data.frame,formula y
[1]
2.32,
32.
21.
81.
82.
92.
22.
42.
92.
12.
42.
42.
22.
32.
22.
02.
51.
92.
12.
42.
32.
92.
31.
82.
52.5
[27]
2.
02.
62.
42.
72.
01.
82.
02.
22.
82.
22.
52.
42.
42.
62.
32.
02.
62.
22.
11.8xl
[1]48576670893646542677896747515766798860497752608643346372575559837647
[35]368082643742668337685992x2
[1]50364041284942455229294338345336332933552944432347552532324233363140
[35]533429304747432244453728x3
[1]51464844435450486250485355515449564649515258504153544946525142494748
[35]574948516050535151515346a=data.framemodeLframey-x1+x2+x3获取1m对象中包括的变量名提取1m函数公式里的变量的内容,提取formula的里面的变量all.varsy-xl+x2+x3
[1]y“x2““x3”##将公式分解formula“y〜xl+x2+x3”把字母变成小写字母Tol ower排列组合:Choose n,k##组合数factorial n的阶乘library gtoolscombinations4,2#把C4取2的状况列出来combn4,2#也是C4取2的状况列出来向量里面的数相乘,向量乘积,向量相乘算向量里面所有数相乘的积prodx##xadabag包的问题处理包规定的的数据中的因变量一定要有本来变量的各个水平虽然有的水平adabag predictnewdata没有数值也没有关系libraryadabaga=baggingSpecies-.,irisD=iris所有的观测值都是但其他的因子都不存在levelsD[,5]=replevelsiris[,5][l],3#setasa,summaryDb=predicta,newdata=D$classtableiris[,5],b成果是serosaserosa50versicolor50virginica50I但改在这样后就没问题了二new.D iris「】#这样所有的观测值都是但其他的因子还在虽然没有观测值,new.D[,5]=iris[l Speciessetosa,成果是predicted.object=predicta,newdata=new.Dtableiris[,5],predicted.object$classsetosa versicolorvirginicasetosa5000versicolor0473virginica0149I因此,下面的和在取值上都是同样的,但因子个数无论有无却不一样样new.D D看一下和就清晰了levelsnew.D levelsD补缺失值
1、libraryDMwR##加载程序包library nnetheadalgaealgae-algae[-manyNAs algae,]##去掉那些包括诸多缺失值的观测clean,algae-knnlmputationalgae[,1:12],k=10##使用与缺失值距离近来的十个观测值的平均值来填充缺失值
2、LibrarymissForestmissRorestw弥补缺失值w[114:118,]#116有问题w[116,1]=NA#弥补缺失值librarymissForestv=missForestw$ximpv[114:118,1#116正常保留R里面的图片将图片保留到目前啊作目录中名为mygraph.pdfpdfHmygraph
1.pdF##也可以是jpeg,win.metaEle,png,bmp,tiff,xfig和postscriptplotmtcars$wt,mtcars$mpgablinelmmpg^wt,data=mtcarstitlenRegression ofChapter1dev.off在指定的区间,求出函数的极大值点optimizef,c0,1,maximum=TRUE为定义区间0,1求导函数,求导数二八其中八是函数fun expression^2##x2Dfunjx”怎样直看软件已安装包有哪些?杳看里的包,查看已安装的包r R.packagesall.available=TRUEcar11%1n%,packagesall.available=TRUE
[1]TRUE一步一步运行函数;一步步运行函数;按步运行;逐渐运行以glm为例libraryDAAGhead anesthetic#数据debugglmout=glmmove^conc+logconc,family=binomiallink=logit,data=anesthetic然后就会一步一步显示成果画散点图把直线和曲线加上,附有拟合直线和平滑曲线的散点图第一种attachmtcarsplotwt,mpg,main=nBasic ScatterPlot of MPG vs.Weight**,xlab=HCar Weightlbs/1000\ylab=HMiles Per GallonH,pch=19ablinelmmpg〜wt,col=red Jwd=2,lty=1lineslowesswt,mpg,col=Hbluen,lwd=l,lty=2第二种librarycarscatterplotmpg~wt|cyl,data=mtcars,lwd=2,main=HScatter PlotofMPG”,xlab=Weight of二二Car”,ylab MilesPerGallon”,legend.plot T,id.method=identify”,labels=row.namesmtcars,boxplots=nxyH第三种散点矩阵librarycarscatterplotMatrix~mpg+disp+drat+wt,data=mtcars,spread=F,diagonal=Hhistogramn对一种矩阵定义颜色,根据矩阵加颜色,根据矩阵里的数定义一种颜色矩阵my data-mtcars[c1,3,5,6]mydata.corr=abscormydatamycolors=dmat.colormydata.corr数据中相似的对象更为靠近,把有关性较高的对象放一起myorder=order.singlemydata.corr^^散点图重叠程度,重叠散点图的表达n-10000xl-matrixrnormn,ncol=2x2-matrix rnormn,mean=3,sd=
1.5,ncol=2x-rbind xl,x2oldpar-parmfrow=c2,2smoothScatterx,nrpoints=0smoothScatterx##a differentcolor scheme:Lab.palette-colorRampPalette c,zbluezz,“orange”,〃red〃,space=〃Lab〃smoothScatter x,colramp二Lab.palette积分,函数积分integrate{stats}integrate dnorm,-
1.96,
1.96integratednorm,-Inf,Inf f=functionx xintegratef,0,22with absoluteerror
2.2e-14分组画散点图,分组画图画组合图toerarceopsia查看X的属性X的属性值Attributesx三维矩阵,三维数组a=l:150p=arraya,dim=c5,10,3求一组数的累积分布函数图形,一组数的分布函数图dat=rnorm100003—矩阵的矩阵运算4矩阵的分解1_1将向量定义成数组向量只有定义了维数向量dim属性后才能被看作是数组.例如:z=l:12;dimz=c3,4;’[,1][,2][,3][,4][1,]14710[2,]25811[3,]36912z;注意生成矩阵是按列排列的1_2用array函数构造多维数组使用方法为array data=NA,dim=length data,dimnames=NULL参数描述data是一种向量数据dim是数组各维的长度,缺省时为原向量的长度dimname是数组维的名字,缺省时为空例子x=array1:20,dim=c4,5xL1][,2]L3]L4][,5]1591317[1,][2,]26101418[3,]37111519[4,]481216201_3用matrix函数构造矩阵函数matrix是构造矩阵二维数组的函数,其构造形式为matrix data=NA,nrow=l,ncol=l,byrow=FALSE,dimnames=NULL其中data是一种向量数据,nro.是矩阵的行数,ncol是矩阵的列数•当byrow二TRUE时,生成矩阵的数据按行放置,缺省时相称于byrow二FALSE,数据按列放置.dimname是数组维的名字,缺省时为空.如构造一种3x5阶的矩阵[,1][,2][,3][,4][,5][1,]12345[2,]678910[3,]1112131415A=matrix1:15,nrow=3,byrow=TRUE2—矩阵的四则运算可以对数组之间进行四则运算+、
一、*、/,这时进行的是数组对应元素的四则运算一般状况下参与运算的矩阵或者数组的维数是相似的,但也可以计算不一样维的,这是要将对应的元素补足3_1转置运算x=densitydat$xdx=diffdensitydat$x
[1]y=densitydat$y plotx,cumsumy*dx.运用行包来拟合分布函数2tdistrplus libraryfitdistqlus#生成正态随机数xlset.seed123x l-rnorm100用这个函数,根据其成果和图形结合来看比较像什么分布;若像多种分布,就把多descdistxl##种都运行看看哪个更好跟上一句类似,但把每个点都在图中标出descdistx1,boot=500#fitnb-fitdistxl,nnormnsummaryfitnb上面三句结合,到这里会有图形把实际值与分布函数图放在一起比较,直观上看与plotfitnb##否类似这个是累积函图,观测其分布函数与实际的累积函数与否相似cdfcompfitnb####上面也可以把两个成果放在一起比较,fitp-fitdistx1,nunir;cdfcomplistfitp,fitnb,这样可以看两个哪个拟合的更好会输三个记录量,就是衡量假设分布对实际数据拟合的好坏指标详细指标怎么gofstatfitnb#样,需查一下应当是越小越好的##其他函数也可研究一下,我还没研究透##看下面的一种例子更清晰了set.seed123x3-rbetan=100,shape1=5,shape2=10descdistx3,boot=1000fitb-fitdistx3/betansummaryfitbplotfitbfitn-fitdistx3,nnormnsummaryfitnplotfitncdfcomplistfitb,fitngofstatlistfitb,fitn#就各项指标来看,更好一点fitbCut,将数值型变量分段,划分变量区间,对变量进行划分,提成几份Z-stats::rnorm10000tablecutZ,breaks=-6:6R语言读取文献夹下文献并进行合并数据生成总数据文献,读取文献夹下的所有文献在流水化办公中,一般有格式统一的表格文献产生,不过到最终要将这一堆表格文献整合为大表却很揪心,累断手,怎样用语言进行一次性导入整合呢?R假设我们将文献夹作为需要导入的表格的寄存点,文献夹内所有文献均为本次需D:/input要导入数据,那么可以用如下程序进行操作#设定工作目录为盘setwdCD:/Da=list.filesinput#list.files命令将input文献夹下所有文献名输入adir=paste./input/,,a sep=#用paste命令构建途径变量//dir#读取长度,也就是文献n=lengthdir dir夹下的文献个数#读入第一种文献内容可以不用先读merge.data=read.csvfile=dir[l]header=T sep=//,一种,不过为了简朴,省去定义的时间,我选择先读入一种文献data.framefor iin2:n{new.data=read.csvfile=dir[i]header=T,sep=Hz/merge.data=rbindmerge.data new.dataz循环从第二个文献开始读入所有文献,并组合到变量中merge.datawrite.csvmerge.data file=,,./input/merge.csv row.names=F#输出组合后的文献//至文献夹merge.csv[J input对于矩阵A,函数t A表达矩阵A的转置,如:A二matrix1:6,nrow=2;A;LU[,2][,3][1J1[2,]2t A;LU[,2][1,]1[2,]234[3,]563_2求方阵的行列式函数det是求矩阵行列式的值,如det matrix1:4,ncol=2;
[1]-23_3向量的内积对于n维向量x,可以当作nxl阶矩阵或Ixn阶矩阵若x与y是相似维数的向量,贝Ux%*%Y表达x与y作内积.例如,x=l:5;Y=2*l:5x%*%y[,1][1,]110函数crossprodO是内积运算函数表达交叉乘积,crossprodx,y计算向量x与y的内积,即tx%*%ycrossprodx表达x与x的内积.类似地,tcrossprodx,y表达x%*%tY,即x与y的外积,也称为叉积tcrossprodx表达x与x作外积.如x=l:5;y=2*l:5;crossprodx;LU[1,]55crossprod x,y;LU[1J notcrossprodx;LI][,2][,3]L4][,5]12345[1,][2,]2468103691215[3,][4,]48121620[5,]510152025tcrossprodx,y;[,1][,2][,3][,4][,5][1,]246810[2,]48121620[3,]612182430[4,]816243240[5,]10203040503_4向量的外积叉积x%o%y;[,3][,4][,5][,1][,2]6810[1,]24121620[2,]48182430[3,]612243240[4,]816304050[5,]1020设x和y是n维向量,贝I」x%o%y表达x与y作外积.例如outer是更为强大的外积运算函数,outer x,y计算向量二与y的外积,它等价于x%o%y函数outer的一般调用格式为outerx,y,fun=*其中x,y矩阵或向量,fun是作外积运算函数,缺省值为乘法运算函数outer在绘制三维曲面时非常有用,它可生成一种x和y的网格3_5矩阵的乘法设A和B为两个矩阵,一般意义下的矩阵乘法是通过A%*%B来完毕,crossprodA,B表达的是t A%*%B,而tcrossprodA,B表达的是A%*%tB最终我们通过运算懂得x%*%A%*%x为二次型例子A=array1:9,dim=c3,3A%*%B;[,2][,3][1,]905418[2,]1146924[3,]1388430B=array9:1,dim=c3,3crossprodA,B—tA%*%B;LU[,2][,3][1,]TRUE TRUE TRUE[2,]TRUE TRUE TRUE[3,]TRUE TRUE TRUE tcrossprodA,B=二A%*%tB;[,1][,2][,3][1,]TRUETRUETRUE[2,]TRUETRUETRUE[3,]TRUETRUETRUE3_6生成对角阵和矩阵取对角运算函数diag依赖于它的变量,当v是一种向量时,diagv表达以v的元素为对角线元素的对角阵.当M是一种矩阵时,则diagM表达的是取M对角线上的元素的向量.如v=cl,4,5;diagv;LU[,2][,3][1,]100[2,]040[3,]005M=arrayl:9,dim=c3,3;diagM;
[1]1593_7解线性方程组和求矩阵的逆矩阵矩阵逆和矩阵的广义逆、矩阵广义逆若求解线性方程组Ax二b,其命令形式为solve A,b,求矩阵A的逆,其命令形式为solve A.设矩阵A=t array c1:8,10,dim=c3,3,b-c1,1,1,则解方程组Ax=b的解x和求矩阵A的逆矩阵的命令如下A=t arrayc1:8,10,dim=c3,3;b=cl,1,1;x=solve A,b;x;
[1]-
1.000000e+
001.000000e+
003.806634e-16solve A;LU L2][,3]-
1.333333[1,]-
0.
666666713.666667[2,]-
0.6666667-2[3,]
1.0000000-
2.0000001矩阵的广义阵ginvA3_8求矩阵的特性值与特性向量函数eigenSni是求对称矩阵Sm的特性值与特性向量,其命令形式为:ev=eigenSm,则ev寄存着对称矩阵Sm特性值和特性向量,是由列表形式给出的,其中ev$values是Sm的特性值构成的向量,ev$vectors是Sm的特性向量构成的矩阵.如Sm=crossprodA,A;ev=eigenSm;ev;$values
[1]
303.
195336180.
765907390.03875643$vectors[,1][,2][,3][1,]-0,
46466750.
0.2995295[2,]-
0.5537546-
0.-
0.8326258[3,]-
0.6909703-
0.
0.46585024_1特性值分解
1.定义对N阶方阵A,x为标量,v是非零的N维列向量,且满足Ax=xv,则称x为矩阵A的特性值,v是相对应于x的特性向量特性值的全体成为A的谱
2.在r中的实现在r中运用函数eigen A来求矩阵的特性值和特性向量,详细的调用格式为以矩阵A为例阐明此问题A=arrayc1,1,1,4,2,1,9,3,1,dim=c⑶3;D=eigenA;D;$values
[1]
5.8284271-
2.
00000000.1715729LU[1,]-
0.[,2][,3]8597736[2,]-
0.-
9.486833e-
010.53848204346498[3,]-
0.
6.474883e-
173.-
0.78729382680839162278e-
010.3003425$vectors
3.特性值分解的性质我们懂得当所求的的特性向量构成的矩阵可逆时会满足solve vectors%*%A%*%vectors=diag values,下面进行验证Li]
5.[,2][,3]828427e+00-
1.285213e-
158.339683e-16[2,]
1.211325e-
152.704000e-16-
2.000000e+
001.715729e-01[3,]—3,471971e—16-
1.607126e-16solvevectors%*%A%*%vectors;成果的精度还是比较高的4_2矩阵的奇异值分解函数svdA是对矩阵A作奇异值分解,即A=V,其中U,V是正交阵,D为对角阵,也就是矩阵A的奇异值.svdA的返回值也是列表,svdA$d表达矩阵A的奇异值,即矩阵D的对角线上的元素.svdA$u对应的是正交阵U,svdA$丫对应的是正交阵V.例如,A-t arrayc1:8,10,dim=c⑶3SVD=svdA;SVD;$d
[1]
17.4125052$u
0.
87516140.1968665LU[,3][,2][1,]-
0.
20933730.1616762[2,]-
0.
50384850.96438514-
0.8630696[3,]-
0.8380421$v
0.
035321450.4785099-
0.26213299[1,]-o.4646675-
0.
0.2995295[2,]-
0.
55375460.-
0.8326258[3,]-
0.
69097030.
0.4658502attachSVD;The followingobjects aremasked fromSVD position3’:d,u,v u%*%diagd%*%tv;[,1]L2][,3][1,1123[2,]456[3,]7810A;[,1][,2][,3][1,1123[2,]456[3,]78104_3qr分解设A为m*n矩阵,假如存在m*rn酉矩阵Q即QHQ=QQH=I和m*n阶梯形矩阵R,使得A二QR,那么此分解称为QR分解QR分解在处理最小二乘问题、特性值计算等方面有着十分重要的作用#建立矩阵A=arrayc1:12,dim=c4,3;A.,3][,U,2][1,]195[2,]2610[3,]3711[4,]4812#进行矩阵分解QR=qrA;QR$qrLU[,2][,3][1,]-
5.4772256[2,]
0.3651484-
12.7801930-
2.008316e+01[3,]
0.5477226[4,]-
3.2659863-
6.531973e+
000.7302967$rank-
0.
37816967.880925e-16-
0.
91247449.277920e-01
[1]2$qraux
[1]1,
1825741.
1561351.373098$pivot
[1]123attr,“classLU qr#提取Q,R并验证分解的对的性Q=qr.Q QR;R=qr.R QR;Q%*%R;[,1]L2][,3][1,]159[2,]2610[3,]3711[4,]4812矩阵的秩:4_4Schur分解引言从特性值的分解中可以看出,特性值的分解是有条件的,假如特性向量不是线性无关的,那么对于一种矩阵来说便不能采用特性值分解的措施对矩阵进行分解例如对于矩阵A=t arrayc6,12,19,-9,-20,-33,4,9,15,dim=c3,3进行特性值分解有A=t arrayc6,12,19,-9,-20,-33,4,9,15,dim=c3,3;-A1[,1][,2][,3][1,]61219[2,]-9-20-33[3,]4915detA;
[1]T W=eigenA;W;$values
[1]l+0i l-0i-l+0iLU[,2]L3][1,]-
0.4082483-0i-
0.4082483+0i-
0.4740998+0i[2,]
0.8164966+0i
0.8164966+0i
0.8127426+0i[3,]-
0.4082483+0i-
0.4082483-0i-
0.3386427+0iattachW;$vectorsThe followingobjects aremasked fromW position3’:values,vectors detvectors;错误于determinant,matrix x,logarithm=TRUE,...:目前还不能算复数矩阵的行列式det Revectors;
[1]-
7.599489e-19solvevectors[,1][,2][,3][1,]
0.000000+78209959i
0.00000+782099591-
9.26965+78209959i[2,]
0.00i0,Oi-
9.li[3,]
3.691206+Oi
11.07362+Oi
18.45603+Oi很明显vectors不是一种可逆矩阵此时进行特性值辨别这种措施便不可行,对于这种状况我们可以作Schur分解描述对于任意的方针A,其Schur分解的形式为A=USUII,其中U是原则的正交矩阵即满足UUH=D,S为上三角矩阵,并且对角线上的元素为A的特性值由于此函数在包Matrix中,因此使用之前必须调入并且注意matrix和Matrix的区别例子:A=Matrix c6,12,19,-9,-20,-33,4,9,15,ncol=3,byrow=TRUE;A;L2][,3]L11[1,]61219[2,]-9-20-33[3,]4915x3Matrix ofclass〃dgeMatrix〃libraryMatrix;Sch=Schur A,vectors=TRUE;Q=Sch@Q;Q=as.matrix Qattach Sch;错误于attachSch:attach只合用于串列,数据框和环境Q3x3Matrix ofclass〃dgeMatrix〃L1][,2][,3][1,]61219[2,]-9-20-33[3,]49154_5描Cholesky分解柯利分解述:正定矩阵设A是n阶实系数矩阵,假如对任何非零向量X=xl,...xn均有t XAX0,就称A正定Positive Definite正定矩阵在相合变换下可化为原则型,o即单位矩阵Cholesky分解对任意的正定矩阵A,存在上三角矩阵R,使A=tR%*%R,则称为A的Cholesky分解柯利分解。
个人认证
优秀文档
获得点赞 0