跳到主要内容

R语言变量和常量

提示
  1. 变量的概念和规则:变量是存储数据的命名内存位置,名称可包含字母、数字、下划线和句点,且区分大小写。
  2. 变量类型与声明:R语言中变量类型包括布尔型、整数型、浮点型、字符型和字符串型,变量声明使用赋值操作符。
  3. 常量和特殊常量:常量是代码中固定值的实体,R 中的常量类型包括数值型、整数型、复数型等,特殊常量如 NULLInfNaNNA 用于特定情况。

在计算机编程中,变量是用来存储数据的命名内存位置。例如,

x = 13.8

这里,x 是存储数据 13.8 的变量。现在,每当我们在程序中使用 x 时,我们将得到 13.8

x = 13.8

# 打印变量
print(x)

输出

[1] 13.8

如你所见,当我们打印 x 时,输出是 13.8。

声明 R 变量的规则

根据我们的需求,我们可以为变量使用任何名称。然而,在创建变量时需要遵循一定的规则:

  • R 中的变量名可以使用字母、数字、句点和下划线创建。
  • 变量名可以以字母或句点开头,但不能以数字开头。
  • 如果变量名以句点开头,则后面不能跟随数字。
  • R 是区分大小写的。这意味着 ageAge 被视为不同的变量。
  • 我们有一些保留字不能用作变量名。

注意:在 R 编程的早期版本中,句点 . 被用于连接多词变量名,如 first.namemy.age 等。然而,现在我们大多使用 _ 来表示多词变量,例如 first_namemy_age 等。

R 变量的类型

根据您想要存储的数据类型,变量可以分为以下几种类型。

1. 布尔变量

它存储单比特数据,即 TRUEFALSE。这里,TRUE 表示是,FALSE 表示否。例如,

a = TRUE

print(a)
print(class(a))

输出

[1] TRUE
[1] "logical"

这里,我们声明了布尔变量 a,值为 TRUE。布尔变量属于逻辑类,所以 class(a) 返回 "logical"

2. 整数变量

它存储没有任何小数值的数值数据。例如,

A = 14L

print(A)
print(class(A))

输出

[1] 14
[1] "integer"

这里,L 代表整数值。在 R 中,整数变量属于整数类,所以 class(A) 返回 "integer"

3. 浮点变量

它存储带有小数值的数值数据。例如,

x = 13.4

print(x)
print(class(x))

输出

[1] 13.4
[1] "numeric"

这里,我们创建了一个名为 x 的浮点变量。你可以看到浮点变量属于 numeric 类。

4. 字符变量

它存储单个字符数据。例如,

alphabet = "a"

print(alphabet)
print(class(alphabet))

输出

[1] "a"
[1] "character"

这里,我们创建了一个名为 alphabet 的字符变量。由于字符变量属于字符类,class(alphabet) 返回 "character"

5. 字符串变量

它存储由多个字符组成的数据。我们使用双引号来表示字符串数据。例如,

message = "欢迎来到 Programiz!"

print(message)
print(class(message))

输出

[1] "欢迎来到 Programiz!"
[1] "字符"

在这里,我们创建了一个名为 message 的字符串变量。你可以看到这个字符串变量同样属于 character 类。

更改变量的值

根据条件或传入程序的信息,你可以更改变量的值。例如,

message = "Hello World!"
print(message)

# 更改变量的值
message <- "欢迎来到 Programiz!"

print(message)

输出

[1] "Hello World!"
[1] "欢迎来到 Programiz!"

在这个程序中,

  • "Hello World!" - message 的初始值
  • "欢迎来到 Programiz!" - message 的更改后的值

你可以看到,变量的值可以随时更改。

R 常量

常量是那些在代码中不打算更改值的实体。在 R 中,我们可以使用 <- 符号声明常量。例如,

x <- "欢迎来到 Programiz!"
print(x)

输出

[1] "欢迎来到 Programiz!"

这里,"欢迎来到 Programiz!" 是一个字符串常量。

注意:常量也被称为标量。

R 常量的类型

在 R 中,我们有以下几种类型的常量。

  • R 中的五种常量类型 - numeric(数值型)、integer(整数型)、complex(复数型)、logical(逻辑型)、string(字符串型)。
  • 除此之外,还有 4 种特定类型的 R 常量 - Null(空值)、NA(不可用)、Inf(无限大)、NaN(非数字)。

让我们逐一讨论这些类型。

1. 整数型常量

整数型常量是我们在代码中使用的整数值。这些常量以字母 L 结尾。例如,

x <- 15L
print(typeof(x))
print(class(x))

输出

[1] "integer"
[1] "integer"

这里,15L 是一个赋值给 x 的常量。你可以看到该常量的类型和类别都是 integer(整数型)。

我们可以在代码中使用不同类型的整数型常量。例如,

# 十六进制值
x <- 0x15L
print(x)

# 指数值
x <- 1e5L
print(x)

输出

[1] 21
[1] 100000

2. 数值型常量

在 R 编程中,数值型常量可以是整数(4)、浮点数(0.55)或指数数(3e-3)。例如,

z <- 3e-3
print(z) # 0.003
print(class(z)) # "numeric"

y <- 3.4
print(y) # 3.4
print(class(z)) # "numeric"

输出

[1] 0.003
[1] "numeric"
[1] 3.4
[1] "numeric"

3. 逻辑型常量

R 中的逻辑型常量要么是 TRUE(真),要么是 FALSE(假)。例如,

x <- TRUE
y <- FALSE
print(x)
print(y)

输出

[1] TRUE
[1] FALSE

注意:我们也可以使用单个字符来创建逻辑常量。例如,

x <- T
print(x) # TRUE

4. 字符串常量

字符串常量是我们在代码中使用的字符串数据。例如,

message <- "欢迎来到 Programiz!!"
print(message)

输出

[1] "欢迎来到 Programiz!!"

5. 复数常量

复数常量是包含实部和虚部的数据(用后缀 i 表示)。例如,

y <- 3.2e-1i
print(y)
print(typeof(y))

输出

[1] 0+0.32i
[1] "complex"

注意:复数常量只能是纯虚数。例如,

y <- 3i
print(y) # 0+3i
print(typeof(y)) # "complex"

特殊的 R 常量

R 编程还提供了 4 种特殊类型的常量。

  • NULL - 用于声明一个空的 R 对象。例如,
x <- NULL
print(x) # NULL
print(typeof(x)) # "NULL"
  • Inf/-Inf - 表示正无穷和负无穷。例如,
# 结果太大,因此表示正无穷
a <- 2^2020
print(a) # Inf

# 结果太大
# 表示负无穷
b <- -2^2020
print(b) # -Inf
  • NaN(非数字)- 表示未定义的数值。例如,
print(0/0)      # NaN
print(Inf/Inf) # NaN
  • NA - 表示不可用的值。例如,
print(NA + 20) # NA

内置的 R 常量

R 编程提供了一些预定义的常量,可以直接在我们的程序中使用。例如,

# 打印大写字母列表
print(LETTERS)

# 打印小写字母列表
print(letters)

# 打印英文月份的三字母缩写
print(month.abb)

# 打印常数 pi 的数值
print(pi)

输出

 [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S"
[20] "T" "U" "V" "W" "X" "Y" "Z"
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s"
[20] "t" "u" "v" "w" "x" "y" "z"
[1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
[1] 3.141593

在上面的示例中,我们使用了以下内置常量:

  • LETTERS - 用于显示所有大写字母的列表
  • letters - 用于显示所有小写字母的列表
  • month.abb - 用于打印所有英文月份的三字母缩写
  • pi - 用于打印常数 pi 的数值