接前文
R语言基础(一):注释、变量
R语言基础(二):常用函数
4.运算
4.1 数学运算
R语言中支持加减乘除四则运算、乘方运算、求余数(取模)运算:
符号 | 含义 | 示例 |
---|---|---|
+ | 加法 | 1+1 结果是2 |
- | 减法 | 2-1 结果是1 |
* | 乘法 | 4*5 结果是20 |
/ | 除法 | 4/5 结果是0.8 |
%/% | 整除(只要商的整数部分,不四舍五入) | 4%/5% 结果是09%/%5 结果是1 |
%% | 求余数(取模) | 7%%5 结果是2 |
^ | 乘方(幂运算) | 3^2 结果是9 |
() | 括号(英文的和数学规则一样,先计算括号里的) |
> 1+1
[1] 2
> 2-1
[1] 1
> 4*5
[1] 20
> 4/5
[1] 0.8
> 4%/%5
[1] 0
> 9%/%5
[1] 1
> 7%/%5
[1] 2
> 3^2
[1] 9
由数字、运算符、变量等组成,能求得数值的有意义的排列,在程序中叫做表达式
比如
1+1
就是一个算数表达式。
4.2 关系运算
关系运算中的关系,指的是:
大于
>
、小于<
、等于==
、大于等于>=
、小于等于<=
、不等于!=
特殊说明的是在R语言中(其实其它语言中也是如此):
判断相等是两个等号
==
,而不是一个等号大于等于
>=
、小于等于<=
、不等于!=
和等于==
都是有两个符号组成的,中间是不能有空格的。关系运算的结果只有两个值
TRUE
和FALSE
(全大写),TRUE表示真,FALSE表示假。
> 1>=2 #因为1小于2,所以结果是FALSE
[1] FALSE
> 1>2
[1] FALSE
> 1==1 #注意是两个等号,不是一个
[1] TRUE
> 1<=2
[1] TRUE
1>2
这种比较大小关系的表达式也叫做逻辑表达式(或布尔表达式),逻辑表达式的结果只有真和假,即TRUE(真)和FALSE(假)。
4.3 逻辑运算
逻辑运算包含“与、或、非”三种。逻辑运算的结果只有TRUE和FALSE,可以简写成T和F。
与运算
&
和&&
:同真为真,有假即假。只有T&T结果为真,其它情况都是假。或运算
|
和||
:有真即真,全假为假。只有F|F结果为假,其它情况结果都是真。非运算
!
:!T结果是F,!F结果是T值得注意的是,在R语言中,数字0参与逻辑运算时表示F,任何不等于0的数字都表示T。
> T&T
[1] TRUE
> T&F
[1] FALSE
> T|F
[1] TRUE
> F|F
[1] FALSE
> 0&1
[1] FALSE
> 2&1
[1] TRUE
> 0|1
[1] TRUE
> -1&2
[1] TRUE
> !T
[1] FALSE
> !F
[1] TRUE
&
和&&
的区别、|
和||
的区别会在后面讲到。
4.4 赋值运算
R语言变量赋值有三种方式:
左箭头<-、等号=、右箭头->
语法如下:
使用左箭头:
变量<-值
使用等号:
变量=值
使用右箭头:
值->变量
x<-10
x=20
30->x
ps:在有编程基础的人看来,我们习惯用x=20这种等号赋值,但是在数学工作者眼中,等号不是一个好的赋值运算符,比如下面的代码:
x=20
x=x-1
在编程者眼中:
第一步运算是设置x的值是20,
第二步是把x-1的值赋值给x,也就是x=20-1,最后x的值是19
而在数学工作者或者编程小白眼中,
x=x-1
这种操作会让人发疯,因为他们习惯把等号两边的x约掉:
然而这是不对的。。。所以要不断提醒自己,这是程序表达式,不是数学方程。
早期版本的R语言中,只有箭头赋值,没有等号赋值,等号赋值是在1.4.0版本之后才可以用于赋值的,为了和其它语言保持一致。但“=”和“<-”还是有区别的,后面会介绍。