设置数字位数
设置显示保留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-07
平方根计算
> 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.08554
创建向量
建立向量的函数是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] 6
练习中有部分题目进行了删减修改
练习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语言之书编程与统计》的笔记
如果有什么相关错误劳烦指出,感谢
若学习笔记不算原创也请指出提醒,谢谢 *