R语言学习笔记(三)- 运算符与函数

Python& AI 2018-07-28 492 次浏览 Comments Off on R语言学习笔记(三)- 运算符与函数

3.1 运算符
运算符是一个符号,通知编译器执行特定的数学或逻辑操作。 R语言具有丰富的内置运算符,并提供以下类型的运算符。
运算符的类型
R语言中拥有如下几种运算符类型:
• 算术运算符
• 关系运算符
• 逻辑运算符
• 赋值运算符
• 其他运算符

3.1.1 算数运算符
+        两个向量相加
-         两个向量相减
       两个向量相乘
/         将第一个向量与第二个向量相除
%%    两个向量求余
%/%   两个向量相除求商
^        将第二向量作为第一向量的指数

3.1.2 关系运算符
关系运算符用于将第一向量的每个元素与第二向量的相应元素进行比较。 比较的结果是布尔值。
> 大于                     <小于

== 等于                  != 不等于

= 大于等于           <= 小于等于

3.1.3 逻辑运算符
& 逻辑 与 运算符,只有当两个元素均为TRUE时,输出为TRUE
| 逻辑 或 运算符,两个元素中有一个为TRUE时,输出TRUE
! 逻辑 非 运算符,给出每个元素相反的逻辑值
逻辑运算符&&|| 只考虑向量的第一个元素,给出单个元素的向量作为输出。

3.1.4 赋值运算符
左分配:
<−
or
=
or
<<− 右分配: ->
or
->>

3.1.5 其他运算符
这些运算符用于特定目的,而不是一般的数学或逻辑计算。

: 冒号运算符。 它为向量按顺序创建一系列数字。

v <- 2:8
print(v)

它产生以下结果 -

2 3 4 5 6 7 8

%in% 此运算符用于标识元素是否属于向量。

v1 <- 8
v2 <- 12
t <- 1:10
print(v1 %in% t)
print(v2 %in% t)

它产生以下结果 -

TRUE
FALSE

%*% 此运算符用于将矩阵与其转置相乘。

M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)
t = M %*% t(M)
print(t)

它产生以下结果 -

[,1] [,2]
[1,] 65 82
[2,] 82 117

3.2 函数
函数是一组组合在一起以执行特定任务的语句。 R语言具有大量内置函数,用户可以创建自己的函数。
在R语言中,函数是一个对象,因此R语言解释器能够将控制传递给函数,以及函数完成动作所需的参数。
该函数依次执行其任务并将控制返回到解释器以及可以存储在其他对象中的任何结果。

3.2.1 函数定义
使用关键字函数创建R语言的函数。 R语言的函数定义的基本语法如下

function_name <- function(arg_1, arg_2, ...) {
Function body
}

3.2.2函数组件

函数的不同部分 -
 函数名称 -这是函数的实际名称。 它作为具有此名称的对象存储在R环境中。
 参数 -参数是一个占位符。 当函数被调用时,你传递一个值到参数。 参数是可选的; 也就是说,一个函数可能不包含参数。 参数也可以有默认值。
 函数体 -函数体包含定义函数的功能的语句集合。
 返回值 -函数的返回值是要评估的函数体中的最后一个表达式。
R语言有许多内置函数,可以在程序中直接调用而无需先定义它们。我们还可以创建和使
我们自己的函数,称为用户定义的函数。

3.2.3 内置功能
内置函数的简单示例是seq(),mean(),max(),sum(x)和paste(...)等。它们由用户编写的程序直接调用。 您可以参考最广泛使用的R函数。

# Create a sequence of numbers from 32 to 44.
print(seq(32,44))

# Find mean of numbers from 25 to 82.
print(mean(25:82))

# Find sum of numbers frm 41 to 68.
print(sum(41:68))

当我们执行上面的代码,它产生以下结果 -

[1] 32 33 34 35 36 37 38 39 40 41 42 43 44
[1] 53.5
[1] 1526

3.2.4 函数的其他常用功能
设置参数默认值

# Create a function with arguments.
new.function <- function(a = 3, b = 6) {
result <- a * b
print(result)
}

按位置或名称提供参数

# Create a function with arguments.
new.function <- function(a,b,c) {
result <- a * b + c
print(result)
}

# Call the function by position of arguments.
new.function(5,3,11)

# Call the function by names of the arguments.
new.function(a = 11, b = 5, c = 3)

3.2.5 函数的延迟评估
对函数的参数进行延迟评估,这意味着它们只有在函数体需要时才进行评估。

# Create a function with arguments.
new.function <- function(a, b) {
print(a^2)
print(a)
print(b)
}

# Evaluate the function without supplying one of the arguments.
new.function(6)

当我们执行上面的代码,它产生以下结果 -

[1] 36
[1] 6
Error in print(b) : argument "b" is missing, with no default

也就是说,没有提供参数时,若函数并没有使用到该参数,则不会报错。

微信扫一扫,分享到朋友圈

R语言学习笔记(三)- 运算符与函数
梓沨

站长 INTP,生物搬砖工