系统自学R的第七天#参考书籍《R语言编程艺术》

一日之计在于晨!!我梅梅子开始辣!
接着原来的继续搞!!!

  • 常用的向量运算

主要是一些常用的向量运算,包括算术逻辑运算向量索引以及一些创建向量的有用方法

,,向量运算和逻辑运算
直接看例子,这也确实比较好理解的!

> x<-c(1,2,-1)
> x*c(2,0,5)
[1]  2  0 -5
> x%%c(1,2,4)
Error: unexpected input in "x%"
> x%%c(1,2,4)
[1] 0 0 3

%%原来说过,就是取余数

  • 向量索引

R中最重要和最常用的一个运算符是索引,我们使用它来选择给定向量中特定索引的元素来构成子向量。
索引向量的格式是向量1[向量2],它返回的结果是,向量1中索引为向量2的那些元素。
下面就是例子:

> y<-c(1.2,5,4,6,7)
> y[c(1,3)] #提取y中第一个和第三个元素
[1] 1.2 4.0
> y[3:4]#提取y中第三到第四个元素
[1] 4 6
> v<-4:5
> y[v]
[1] 6 7

负数的下标代表我们想把相应元素剔除
例如:

y[-1]
[1] 5 4 6 7

像这样的情况,使用length()函数通常很有用。例如,假设我们想选择向量z中除最后一个元素外的其他全部元素。以下代码可以实现:

>y[1:length(y)-1]
[1] 1.2 5.0 4.0 6.0

或更简单的代码如下:

> y[-length(y)]
[1] 1.2 5.0 4.0 6.0

  • 用:运算符创建向量

冒号运算符:它生成指定范围内数值构成的向量

> 5:8
[1] 5 6 7 8
> 5:1
[1] 5 4 3 2 1

要注意运算符优先级的问题
在命令窗口中输入?Syntax,可以从R自带的帮助文件里获得运算符优先级的详细说明
运算符优先级

  • 使用seq()创建向量

运算符更为一般的函数是seq() (由sequence得来),用来生成等差序列。例如,鉴于3:8生成向量(3,4,5,6,7,8),其元素间隔为1(4-3=1,5-4=1,以此类推),用seq()函数可以生成间隔为3的向量,如下所示:

> seq(from=12,to=30,by=3)
[1] 12 15 18 21 24 27 30

间隔也可以不为整数,例如0.1

> seq(from=1.1,to=2,length=10)
 [1] 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0
  • 使用rep()重复向量常数

rep()(由repeat得出)函数让我们可以方便地把同一常数放在长向量中。调用的格式是rep(x,times),即创建times*length(x)个元素的向量,这个向量由是x重复times次构成(当是每一组的重复)。例如:

> q<-rep(8,4)
> q
[1] 8 8 8 8
> rep(c(5,12,8),3)
[1]  5 12  8  5 12  8  5 12  8

rep()函数还有一个参数each(也就是每一个的意思),与times参数不同的是,它指定x交替重复的次数。

> rep(c(5,14,3),each=2)
[1]  5  5 14 14  3  3
  • 使用all()和any()

any()和all()函数非常方便快捷,它们分别报告其参数是否至少有一个或全部为TRUE

> x<-1:10
> all(x>0)
[1] TRUE
> all(x>88)
[1] FALSE
> any(x>8)
[1] TRUE
> any(x>88)
[1] FALSE
> all(x>88)
[1] FALSE
> all(x>0)
[1] TRUE

any()函数判断这些值是否至少一个为TURE。all()函数的功能类似,它判断这些值是否全部为TRUE

这章后面的内容实在是没有看懂,,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值