3.1.4 操作符

Keywords:

Previous: Function calls,Up: Simple evaluation

3.1.4 操作符

R 允许使用 C 语言类似的操作符构建算术表达式,例如,

     > 1 + 2

     [1] 3

表达式可以用括号合并成组,混以函数调用,然后以一种直接的方式赋给变量

     > y <- 2 * (a + log(x))

R 含有一系列操作符。它们如下表所示。

-减号,一元操作符或者二元操作符
+加号,一元操作符或者二元操作符
!一元否操作符
~波浪号,用于模型公式,既可以是一元操作符也可以是二元操作符
?帮助
:序列,二元操作符(在模型公式中,表示交互效应)
*乘法,二元操作符
/除法,二元操作符
^幂运算符,二元操作符
%x%特殊二元操作符,x可以被任意合法的名字替换
%%求模,二元操作符
%/%整除,二元操作符
%*%矩阵相乘,二元操作符
%o%外积,二元操作符
%x%Kronecker乘积,二元操作符
%in%匹配操作,二元操作符(在模型公式中,表示嵌套)
<小于,二元操作符
>大于,二元操作符
==等于,二元操作符
>=大于等于,二元操作符
<=小于等于,二元操作符
&与操作,二元操作符,向量模式
&&与操作,二元操作符,不是向量模式
|或操作,二元操作符,向量模式
||或操作,二元操作符,不是向量模式
<-左赋值,二元操作符
->右赋值,二元操作符
$列表子集,二元操作符

除了语法上,操作符使用和函数调用没有差异。事实上,x + y"+"(x, y) 等价。注意既然 + 不是一个标准的函数名字,,那么它就需要被引号括起来。

R 同时处理数据的整个向量,并且大多数元素操作符和基本的数学函数如log是向量模式的(和上面表格中提示的一样)。这意味着如果两个一样长度的向量相加会隐式依据向量索引循环计算得到一个含有元素方式加和结果的向量。这种用法同样适合其它操作符,如-*,和 /,以及可以推广到更高维的结构。需要注意的是,两个矩阵的相乘不会得到通常的矩阵乘积(%*%操作符用于这种目的)。一些和向量操作相关的要点将会在Elementary arithmetic operations 部分讨论。

为访问向量的某个元素,我们常常使用x[i] 语句。

     > x <- rnorm(5)

     > x

     [1] -0.12526937 -0.27961154 -1.03718717 -0.08156527  1.37167090

     > x[2]

     [1] -0.2796115

列表分量则更多地用 x$ax[[i]] 方式访问。

     > x <- options()

     > x$prompt

     [1] "> "

索引构造(Indexing constructs)同样可以出现在一个赋值操作的右边。和其它操作符类似,索引实际上也是通过函数实现,可以用 "["(x, 2) 代替 x[2]

R的索引操作含有许多高级特性。这部分内容将在Indexing部分进一步描述。

Hits:Loading...

special topic