运算符
运算符:包含一个或者两个参数的无括号的参数
符号 | 说明 |
---|---|
+ | |
– | |
* | |
^ | |
%% | 取模运算 |
%/% | 整除运算 |
可以定义自己的二元运算符
`%myop%` = function(a, b){ 2*a + 2*b }
> 1 %myop% 1 [1] 4
一些特殊的语言结构也是二元运算符
例如:赋值运算符<-,索引[],函数调用max(a, b)
运算顺序
运算符的优先级 (按优先级排序)
运算符 | 描述 |
---|---|
({ | 函数调用和分组表达式 |
[ [[ | 索引 |
:: ::: | 访问命名空间中的变量 |
$ @ | 成分/序列提取 |
^ | 求幂运算 |
– + | 一元负号和正号 |
: | 序列运算符 |
%any% | 特殊运算符 |
* / |
乘法,除法 |
+ – | 二元加,减 |
< > <= >= == != |
关系运算符 |
! & && | || |
逻辑运算符 |
~ | 公式连接符 |
-> ->> | 向右赋值 |
= | 从右至左赋值 |
<- <<- | 从右至左赋值 |
? | 帮助 |
赋值操作
R中还有一类赋值操作语句,其赋值操作符的左端是一个函数
将一个对象替换为一个属性略有不同的对象
x = 1 y = list(shoes = "loafers", hat = "Yankees cap", shirt = "white") z = function(a, b, c){ a^b/c } v = c(1 ,2, 3, 4, 5 ,6, 7, 8)
dim(v) = c(2, 4) > v [,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 2 4 6 8
> v[2, 2] = 10 > v [,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 2 10 6 8
> formals(z) = alist(a=1, b=2, c=3) > z function (a = 1, b = 2, c = 3) { a^b/c }
后台的操作形如
fun(sym) = val
实际是如下形式的函数的语法糖
`fun<-`(sym, val)
这些函数会替换当前环境中与sym相关的对象.
通常fun指向的是由sym表示的对象的属性.
如果写了一个名为method_name<-的方法,R中允许将method_name<-放在赋值语句的左端
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)