第4章 基本表达式

表达式(expression)是函数的基本组成部分。R 有非常清晰的语法结构,一个符号或一次函数调用,都是一种表达式。

尽管我们所做的事情本质上都是通过函数实现的,但是,R 为一些函数提供了特殊的语法,便于我们写出可读性更高的 R 代码。

在下面的几个小节中,我们将了解以下具有特定语法结构的基础表达式:

  • 赋值表达式
  • 条件表达式
  • 循环表达式

赋值可能是所有编程语言中最基本的表达式了,它所做的就是将一个值(value)赋予或者绑定到一个符号上,使得我们能够通过符号来访问这个值。

尽管编程语言之间有相似性,但 R 采用 <-符号来表示赋值。这和其他语言用 = 有点不同,虽然在 R 中也可以用 = 进行赋值:

x <- 1
y <- c(1, 2, 3)
z <- list(x, y)

我们不需要在赋值前声明符号及其类型。如果环境中没有某个符号,赋值的同时就会创建这个符号;反之,如果符号已经存在,也不会造成冲突,只是将值重新绑定到这个符号上。

我们还可以使用一些其他可用且等效的运算符。x<-f(z)f(z) 绑定到符号 x 上,相比之下,我们还可以用 - > 进行反向赋值:

2 -> x1

我们甚至可以将多个赋值运算符连接使用,使一组符号都取相同的值:

x3 <- x2 <- x1 <- 0

表达式 0 只被计算一次,就将相同的值同时赋予3个符号。为了验证它是如何运行的,我们可以将 0 换成一个随机数生成器(random number generator):

x3 <- x2 <- x1 <- rnorm(1)
c(x1, x2, x3)
## [1] 1.585697 1.585697 1.585697

Get R编程学习指南 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.