R语言运算符知识点讲解

来自:网络
时间:2021-03-14
阅读:

运算符

运算符:包含一个或者两个参数的无括号的参数

符号 说明
+
-
*
^
%% 取模运算
%/% 整除运算

可以定义自己的二元运算符

`%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<-放在赋值语句的左端

返回顶部
顶部