R语言变量和常量
- 变量的概念和规则:变量是存储数据的命名内存位置,名称可包含字母、数字、下划线和句点,且区分大小写。
- 变量类型与声明:R语言中变量类型包括布尔型、整数型、浮点型、字符型和字符串型,变量声明使用赋值操作符。
- 常量和特殊常量:常量是代码中固定值的实体,R 中的常量类型包括数值型、整数型、复数型等,特殊常量如
NULL
、Inf
、NaN
和NA
用于特定情况。
在计算机编程中,变量是用来存储数据的命名内存位置。例如,
x = 13.8
这里,x
是存储数据 13.8 的变量。现在,每当我们在程序中使用 x
时,我们将得到 13.8。
x = 13.8
# 打印变量
print(x)
输出
[1] 13.8
如你所见,当我们打印 x
时,输出是 13.8。
声明 R 变量的规则
根据我们的需求,我们可以为变量使用任何 名称。然而,在创建变量时需要遵循一定的规则:
- R 中的变量名可以使用字母、数字、句点和下划线创建。
- 变量名可以以字母或句点开头,但不能以数字开头。
- 如果变量名以句点开头,则后面不能跟随数字。
- R 是区分大小写的。这意味着
age
和Age
被视为不同的变量。 - 我们有一些保留字不能用作变量名。
注意:在 R 编程的早期版本中,句点 .
被用于连接多词变量名,如 first.name
、my.age
等。然而,现在我们大多使用 _
来表示多词变量,例如 first_name
、my_age
等。
R 变量的类型
根据您想要存储的数据类型,变量可以分为以下几种类型。
1. 布尔变量
它存储单比特数据,即 TRUE
或 FALSE
。这里,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 的数值