R实验报告1 下载本文

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 列表、数据框的建立

1〉己知有5名学生的数据,如表所示.用数据框的形式读入数据. 序号id 1 2 3 4 5

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

姓名name 张三 李四 王五 赵六 丁一 性别sex 年龄age 身高height 女 男 女 男 女 14 15 16 14 15 156 165 157 162 159 体重weight 42 49 41.5 52 45.5