R语言笔记2赋值设置、运算和向量及课后练习题

赋值设置、运算和向量

1. 赋值设置

设置数字位数
设置显示保留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

2. 运算

平方根计算

> 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

3.赋值

创建向量
建立向量的函数是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=)

  • 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=)

  • 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=)

  • x,大向量中的元素,元素可以是小向量
  • decreasing,排序格式
    FALSE表示正序,TRUE表示倒序。

4.向量

子集和元素的提取
关于向量中元素提取只需要在向量名后面添加[n],同时也可以通过该方法进行具体位置的赋值

  • 当数字n为整数,表示提取向量中第n个位置的元素
  • 当数字n为负数,表示删除向量中第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

5.练习

练习中有部分题目进行了删减修改
练习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语言之书编程与统计》的笔记
如果有什么相关错误劳烦指出,感谢
若学习笔记不算原创也请指出提醒,谢谢 *

你可能感兴趣的:(r语言)