当前位置:文档之家› r语言上级实验一

r语言上级实验一

理学院实验报告班级:学号:姓名:实验编号:01实验一:初识R软件一、实验目的与要求:1、了解R软件的安装、启动和退出。

2、掌握软件包的安装和载入。

3、掌握R软件帮助功能。

4、会使用R的集成开发环境Tinn-R或Rstudio。

5、掌握用R进行基本的代数运算。

6、掌握用R生成向量、矩阵、数据框和列表的方法。

7、掌握提取数据子集的方法。

二、实验内容:1.按N的不同取值,计算∑=-Nii12)12(1,并求其与log(N)+1.0的距离,其中N=100,500,1000,1500.#计算其值> N<-c(100,500,1000,1500)> for(k in 1:length(N))+ {+ s=0+ for(i in 1:N[k]){+ s=s+1/(2*i-1)^2+ }+ print(s)+ }[1] 1.231201[1] 1.233201[1] 1.233451[1] 1.233534#求距离> y<-abs(s-(log(N)+1.0))> y[1] 4.371636 5.981074 6.674221 7.0796872.联合命令rep()和seq()生成(1,2,3,4,5,2,3,4,5,6,3,4,5,6,7,4,5,6,7,8,5,6,7,8,9). #用rep生成> rep(1:5,5)+rep(0:4,rep(5,5))[1] 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9 #用seq 生成> rep(seq(1,5),5)+rep(seq(0,4),rep(5,5))[1] 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 93. 利用命令matrix()将矩阵⎪⎪⎪⎭⎫ ⎝⎛=4912011411435A 输入变量A ,并求A 的行列式、逆矩阵,T AA (转置命令为t())、A A T .#输入变量A> A<-matrix(c(35,14,1,4,11,0,12,9,4),nrow=3,ncol=3,byrow=T) > A[,1] [,2] [,3][1,] 35 14 1 [2,] 4 11 0 [3,] 12 9 4#计算A 值 > det(A) [1] 1220#计算A 逆> solve (A) %*%A[,1] [,2] [,3] [1,] 1.000000e+00 -5.551115e-17 0.000000e+00 [2,] -1.387779e-17 1.000000e+00 -1.734723e-18 [3,] -4.440892e-16 -4.440892e-16 1.000000e+00#计算AA T > A%*%t(A)[,1] [,2] [,3] [1,] 1422 294 550 [2,] 294 137 147 [3,] 550 147 241#计算A T A> t(A)%*%A[,1] [,2] [,3] [1,] 1385 642 83 [2,] 642 398 50[3,] 83 50 174. (1)利用命令data.frame()将下表数据读入变量sea,Season Salinity(盐度) Temperature winter 29.19 4 winter 27.37 6 spring24.997.3spring 28.79 8.2 spring 33.28 9.1 summer 32.69 18.1 summer 31.9 17 summer NA 21 autumn 32.53 15.1 autumn32.53 13.8>Season<-c("winter","winter","spring","spring","spring","summer","summer","summer","autu mn","autumn")> Salinity<-c(29.19,27.37,24.99,28.79,33.28,32.69,31.9,NA,32.53,32.53) > Temperature<-c(4,6,7.3,8.2,9.1,18.1,17,21,15.1,13.8) > sea<-data.frame(Season,Salinity,Temperature) > seaSeason Salinity Temperature 1 winter 29.19 4.0 2 winter 27.37 6.0 3 spring 24.99 7.3 4 spring 28.79 8.2 5 spring 33.28 9.1 6 summer 32.69 18.1 7 summer 31.90 17.0 8 summer NA 21.0 9 autumn 32.53 15.1 10 autumn 32.53 13.8 > class(sea)[1] "data.frame"(2)将盐度的标准化变量加到这个数据框中;(标准化公式:ni s x x ,x 是样本均值,n s 是样本方差);#将标准化变量加入> sea<-data.frame(Season,Salinity,Temperature,scale(Salinity))> seaSeason Salinity Temperature scale.Salinity.1 winter 29.19 4.0 -0.40437122 winter 27.37 6.0 -1.03160603 spring 24.99 7.3 -1.85183624 spring 28.79 8.2 -0.54222505 spring 33.28 9.1 1.00518406 summer 32.69 18.1 0.80184977 summer 31.90 17.0 0.52958848 summer NA 21.0 NA9 autumn 32.53 15.1 0.746708110 autumn 32.53 13.8 0.7467081(3)从数据框sea提取包含season和temperature变量的子数据框存入变量sea1,并计算温度的平均值和标准差;> sea1<-data.frame(sea$Season,sea$Temperature)> sea1Season Temperature1 winter 4.02 winter 6.03 spring 7.34 spring 8.25 spring 9.16 summer 18.17 summer 17.08 summer 21.09 autumn 15.110 autumn 13.8> mean(Temperature)[1] 11.96> sd(Temperature)[1] 5.782963(4) 从数据框sea提取包含season和salinity变量的子数据框存入变量sea2,并计算盐度的平均值和标准差(结果不能为NA);> sea2<-data.frame(sea$Season,sea$Salinity)> sea2sea.Season sea.Salinity1 winter 29.192 winter 27.373 spring 24.994 spring 28.795 spring 33.286 summer 32.697 summer 31.908 summer NA9 autumn 32.5310 autumn 32.53> mean(Salinity,na.rm=T)[1] 30.36333> sd(Salinity,na.rm=T)[1] 2.901625(5)利用命令list() 将上表读入变量sea.list, 再将盐度的标准化变量加入到这个列表中,并比较该方法与数据框方法的区别。

#利用list读表> sea.list<-list(Season,Salinity,Temperature)> sea.list[[1]][1] "winter" "winter" "spring" "spring" "spring" "summer" "summer" "summer" "autumn" "autumn"[[2]][1] 29.19 27.37 24.99 28.79 33.28 32.69 31.90 NA 32.53 32.53[[3]][1] 4.0 6.0 7.3 8.2 9.1 18.1 17.0 21.0 15.1 13.8#将盐度标准化变量加入> list(Season,Salinity,Temperature,scale(Salinity))[[1]][1] "winter" "winter" "spring" "spring" "spring" "summer" "summer" "summer" "autumn" "autumn"[[2]][1] 29.19 27.37 24.99 28.79 33.28 32.69 31.90 NA 32.53 32.53[[3]][1] 4.0 6.0 7.3 8.2 9.1 18.1 17.0 21.0 15.1 13.8[[4]][,1] [1,] -0.4043712 [2,] -1.0316060 [3,] -1.8518362 [4,] -0.5422250 [5,] 1.0051840 [6,] 0.8018497 [7,] 0.5295884 [8,] NA [9,] 0.7467081 [10,] 0.7467081attr(,"scaled:center")[1] 30.36333attr(,"scaled:scale")[1] 2.901625。

相关主题