r实验报告1
1数据向量的建立与运算
1〉建立一个r文件,在文件中输入变量x=(1,2,3)t,y=(4,5,6)t, 并作以下运算: (1)计算z=2x+y+e,其中e=(1,1,1)t; (2)计算x与y的内积 (3)计算x与y的外积 > x=c(1,2,3) > y=c(4,5,6) (1) > e=rep(1,3);e > z=2*x+y+e;z (2)> x%*%y (3)> x%o%y 2〉构造一个向量x,向量是由5个1, 3个2,4个3和2个4构成,注意用到rep()函数 > x=rep(c(1,2,3,4),c(5,3,4,2));x 2数组、矩阵的建立与运算 1〉将1,2,···,20构成两个4×5阶的矩阵,其中矩阵a是按列输入,矩阵b是按行输入,并作如下运算: (1)c=a+b; (2)d=abt; (3)e=(eij)n×n,其中eij=aij·bij;
(4)f是由a的前3行和前 3列元素构成的矩阵
(5)g是由矩阵b的各列构成的矩阵,但不含b的第3列. >a=matrix(1:20,nrow=4,ncol=5,byrow=false);a
>b<-matrix(1:20,nrow=4,ncol=5,byrow=true);b (1)> c=a+b;c
(2)> b<-matrix(1:20,nrow=4,ncol=5);b > g= t(b);g > d=a%*%g;d (3) >e=a*b;e
(4) > f=a[-4,-(4:5)];f (5) >g=b[,3];g 2〉生成一个5阶的hilbert矩阵,
(1)计算hilbert矩阵h的行列式;(2)求h的逆矩阵;(3)求h的特征值和特征向量。 n=5;x=array(0,dim=c(n,n)) for(i in 1:n){ for(j in 1:n){ x[i,j]<-1/(i+j-1) } } x (1)det(x) (2)solve(x)(3)eigen(x) 3 列表、数据框的建立
df<-data.frame(name=c(张三,李四,王五,赵六,丁一), sex=c(女,男,女,男,女), age=c(14,15,16,14,15),
height=c(156,165,157,162,159), weight=c(42,49,41.5,52,45.5));df 4 外部数据文件读取
1〉将3中数据表的数据写成一个纯文本文件(空格分隔),用函数read.table()读该文件,然后再用函数wriite.csv()写成一个能用excel表能打开的文件,并用excel表打开. 在d 盘新建一个文本文档,重命名为42_1.txt >rt=read.table(“d:/42_1.txt”,header=t);rt >write.csv(rt,”d:42_1.csv”) 5流程控制与自编函数
1〉编写一个r程序(函数).输入一个整数n. 如果n<=0,则中止运算,并输出一句话:要求输入一个正整数; 否则,如果。是偶数,则将n除2,并赋给n;否则将3n + 1赋给n.不断循环,只到n=1,才停止计算,并输出一句话:‘运算成功”.这个例子是为了检验数论中的一个简单的定理.(进一步修改,若n非整数也同n<=0一样中止运算并输出) y=function(n){
if(n<=0)y=要求输入一个正整数 else{ repeat{ if((n%%2)==0)n=n/2 else n=3*n+1 } } if(n==1){y=运算成功 break} } y