
设置数字位数
设置显示保留3位数字,包括整数部分,若数字首位为零则不算入位数
> options(digits=3) > 1/3 [1] 0.33333 > 10/3 [1] 3.3333
科学计数法
在科学计数法中,xey即表示为x×(10)^y
> 10000000 [1] 1e+07 > 0.00000025 [1] 2.5e-072. 运算
平方根计算
> sqrt(x=16) [1] 4
对数与指数计算
在R中,log默认为自然函数,即以欧拉系数e为底的对数函数,e≈2.718
> log(x=20.08554) [1] 3
若要改变底数则添加变量base=
> log(x=625,base=25) [1] 2
对于以欧拉系数e为底的指数计算
> exp(x=3) [1] 20.085543.赋值
创建向量
建立向量的函数是c(),括号内用逗号分割元素,冒号表示逐个逐个元素加1
> a<-c(1,2,3,4,5) > a [1] 1 2 3 4 5 > > b<-c(1:5) > b [1] 1 2 3 4 5 > > c<-c(a,b) > c [1] 1 2 3 4 5 1 2 3 4 5
序列函数seq
函数格式seq(from=,to=,by=,length.out=)
> seq(3,27,3) [1] 3 6 9 12 15 18 21 24 27 > > seq(3,27,length.out = 5) [1] 3 9 15 21 27
重复函数rep
函数格式rep(x=,times=,each=)
> rep(c(3,5,1),2) [1] 3 5 1 3 5 1 > > rep(c(3,5,1),2,each=2) [1] 3 3 5 5 1 1 3 3 5 5 1 1
排序函数sort
函数格式sort(x=,decreasing=)
子集和元素的提取
关于向量中元素提取只需要在向量名后面添加[n],同时也可以通过该方法进行具体位置的赋值
> a<-c(3,6,4,45,75,6,9) > a[3] [1] 4 > a[-3] [1] 3 6 45 75 6 9 > a[seq(2,6,2)] [1] 6 45 6 > a[c(2,3,6)]<-c(-2,-1,-9) > a [1] 3 -2 -1 45 75 -9 9
向量的求和求积
sum()函数用以向量所有元素相加求和
prod()函数用以向量所有元素相乘求积
> a<-c(1:6) > a*c(-1,1) [1] -1 2 -3 4 -5 6 > > b<-c(1:6) > b+c(1,0.5) [1] 2.0 2.5 4.0 4.5 6.0 6.5 > > c<-c(1,2,3) > prod(c) [1] 65.练习
练习中有部分题目进行了删减修改
练习2.3
> rm(list = ls()) > #练习2.3 > #a.创建并保存从-11~5且以0.3为公差的序列 > a<-seq(-11,5,0.3) > #b.覆盖a题中创建的对象,序列元素相同,但顺序相反 > a<-sort(seq(-11,5,0.3),decreasing=TRUE) > #c.重复向量c(-1,3,-5,7,-9)两次,而且每个元素重复10次,并保存结果。同时按照从小到大的顺序显示结果 > c<-rep(c(-1,3,-5,7,-9),2,each=10) > sort(c,decreasing=FALSE) [1] -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -5 -5 -5 [24] -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -1 -1 -1 -1 -1 -1 [47] -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 3 3 3 3 3 3 3 3 [70] 3 3 3 3 3 3 3 3 3 3 3 7 7 7 7 7 7 7 7 7 7 7 7 [93] 7 7 7 7 7 7 7 7 > #d.创建并保存包含以下内容的向量 > #i.从6~12(包括)的整数序列 > di<-c(6:12) > #ii.重复3次5.3 > dii<-rep(5.3,3) > #iii.数字-3 > diii<--3 > #div.从102开始,最后一个数值是c题中向量长度,元素个数为9的序列 > div<-seq(102,length(c),length.out=9)
练习2.4
> #练习2.4 > rm(list=ls()) > #a.创建并保存包含以下内容的向量,并且元素顺序如下 > #i.从3~6(包括)长度为5的序列 > ai<-seq(3,6,length.out=5) > #ii.向量c(2,-5.1,-33)重复两次 > aii<-rep(c(2,-5.1,-33),2) > #b.提取a题中第二个向量的第一个和最后一个元素,并将他们保存在新对象中 > baifirst<-aii[1] > bailast<-aii[length(ai)] > #c.删除a题中第二个向量中第一个和最后一个元素,并保存为第三个对象 > ci<-aii[c(-1,-(length(aii)))] > #d.仅使用b题和c题的向量来重建a题的向量 > d<-c(baifirst,bailast,ci) > #e.按从小到大的顺序重写a题第二个向量 > e<-sort(aii,decreasing=FALSE) > #f.使用冒号作为向量索引来颠倒e题向量的元素,并验证该结果与使用设置decreasing=TRUE的sort函数所得结果一致 > f<-e[length(e):1] > f==sort(e,decreasing=TRUE) [1] TRUE TRUE TRUE TRUE TRUE TRUE > #g.步骤c中产生的向量中第四个元素重复三次,第六个元素重复四次,最后一个元素一次 > rep(ci[c(4,6,length(ci))],c(3,4,1)) [1] -5.1 -5.1 -5.1 NA NA NA NA -5.1 > #h.创建e题向量的副本并从新命名为一个新对象。分布将该对象的第一个、第五个到第七个元素替换为98~95 > h<-e > h[c(1,5:7)]<-c(98:95) > h [1] 98.0 -33.0 -5.1 -5.1 97.0 96.0 95.0
练习2.5
> #练习2.5 > rm(list=ls()) > #a.使用长度为3的向量将向量c(2,0.5,1,2,0.5,1)转化为仅有一个元素的向量 > c(2,0.5,1,2,0.5,1)*c(1,4,2) [1] 2 2 2 2 2 2 > #b.将以华氏度F为单位的向量(45,77,20,19,101,120,212)转化为以摄氏度C为单位,公式如下C=(9/5)(F-32) > options(digits = 2) > F<-c(45,77,20,19,101,120,212) > C<-(5/9)*(F-32) > C [1] 7.2 25.0 -6.7 -7.2 38.3 48.9 100.0
*此文为学生自学《R语言之书编程与统计》的笔记
如果有什么相关错误劳烦指出,感谢
若学习笔记不算原创也请指出提醒,谢谢 *