%22%3E%3Cpath%20d%3D%22m-369%200h408v79h-408z%22%20fill%3D%22%237933ff%22%2F%3E%3Cpath%20d%3D%22m-148%200h306v45h-306z%22%20fill%3D%22%23974dff%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)
%22%2F%3E%3C%2FclipPath%3E%3Cg%20clip-path%3D%22url(%23a)%22%3E%3Cpath%20d%3D%22m76%200h484v36h-484z%22%20fill%3D%22%23974dff%22%2F%3E%3Cpath%20d%3D%22m0%200h384v24h-384z%22%20fill%3D%22%2306bdfc%22%20transform%3D%22matrix(1%200%200%20-1%200%2060)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)
变量
变量是内存中的标识符或具名空间,其值被存储,之后可在程序中引用和操作。R 是一种动态类型、解释型语言,变量及其他对象的类型检查在运行时完成。这也意味着 R 的解释器不会强制程序员在使用前显式声明变量的“数据类型”。
R 中变量命名规则
- 变量名必须以字母开头,可以包含数字、字母、下划线(“”)和点(“.”)。
示例:
variableName1,new.variable,
示例:
“_my_var” 不是有效的变量名。
- 变量名开头允许使用点(“.”),但其后不应紧跟数字。在 R 中更推荐使用“.”来帮助分隔标识符中的不同单词。
示例:
“.myvar” 是有效的变量名。但“.1myvar” 不是有效变量名,因为点后紧跟数字是无效的。
- 保留字或关键字不能用作变量名。
- 如“#”“&”等特殊字符,以及空白字符(制表符、空格)不能出现在变量名中。
变量赋值
在 R 中,可以通过以下三种方式进行赋值。
-
赋值运算符:“=” 用于赋值。下面的示例将值 20 存储到变量“first.variable”中。示例:first.variable = 20
-
“<-” 运算符:下面的示例将字符 New Program 赋给“second.variable”。
示例:second.variable <- "New Program"
- “->” 运算符:下面的示例将整数 565 赋给“third.variable”。
示例:565 -> third.variable
变量类型
R 中变量的类型可通过 class()、typeof() 和 mode() 来确定。
-
class():给出对象的高层类型,也就是从 R 的面向对象编程角度来看的类型。根据对象是否为向量或其他数据结构,返回类型会不同。
- 如果对象类型是向量,则会返回以下数据类型之一:
- Integer
- Numeric
- Character
- Logical
例如,下面将分别返回 integer 类型和 numeric 类型。
my.var1 = 8L
返回:“integer”
my.var2 = 8.5
返回:“numeric”
- 然而,对于 matrix()、data.frame()、list() 和 array() 等对象,会返回各自的类型。例如,下面将返回“list”。
my.var3 = list(6,9,5)
返回:“list”
- typeof():返回的是底层类型,即与 R 内部对象类型相匹配的类型。它主要被 R 程序员用于确定对象类型。
例如,下面展示了一些 R 中对象的内部类型:
typeof(8+6i)
返回:complex
typeof(factor(c(4,5,6)))
返回:integer
您可以使用 typeof() 探索对象的内部类型,以查找对象的不同内部类型。
3.mode():它也会返回与 typeof() 相同且密切相关的值。但在以下类型上,typeof() 与 mode() 存在一些差异。
- typeof() 中的类型 “symbol” 在 mode() 中为 “name”
例如:
typeof(as.name('foo'))
mode(as.name('foo'))
- typeof() 中的类型 “language” 在 mode() 中返回为 “(” 或 “call”
例如:
typeof(y~x)
mode(45L)
- typeof() 中的 “integer” 和 “double” 在 mode() 中都返回为 “numeric”
例如:
typeof(45L)
mode(45L)
- typeof() 中的 “special” 和 “builtin” 在 mode() 中都返回为 “function”
例如:
typeof(return)
mode(45L)
删除变量
可以使用 rm() 轻松移除或删除 R 中的变量。
例如,下面代码的输出为 8。
my.var = 8
cat(my.var)技术支持
使用 rm(my.var) 可以删除该变量。
rm(my.var)技术支持
您可以通过执行 cat(my.var) 来检查变量是否已被删除。
cat(my.var)技术支持
上述代码将产生如下错误:
Error in cat(my.var): object 'my.var' not found
恭喜
恭喜您,已经完成本教程!
在本教程中,您学习了 R 的变量、变量命名规则、变量的多种赋值方式、检查变量类型的不同方法,以及如何删除变量。
如果您想进一步学习 R,请参加 DataCamp 的 R 入门课程。
欢迎查看我们的 R 主成分分析教程。
变量
变量是内存中的标识符或具名空间,其值被存储,之后可在程序中引用和操作。R 是一种动态类型、解释型语言,变量及其他对象的类型检查在运行时完成。这也意味着 R 的解释器不会强制程序员在使用前显式声明变量的“数据类型”。
R 中变量命名规则
示例:
variableName1,new.variable,
示例:
“_my_var” 不是有效的变量名。- 变量名开头允许使用点(“.”),但其后不应紧跟数字。在 R 中更推荐使用“.”来帮助分隔标识符中的不同单词。
示例:
“.myvar” 是有效的变量名。但“.1myvar” 不是有效变量名,因为点后紧跟数字是无效的。
变量赋值
在 R 中,可以通过以下三种方式进行赋值。
赋值运算符:“=” 用于赋值。下面的示例将值 20 存储到变量“first.variable”中。示例:
first.variable = 20“<-” 运算符:下面的示例将字符 New Program 赋给“second.variable”。
示例:
second.variable <- "New Program"示例:
565 -> third.variable变量类型
R 中变量的类型可通过 class()、typeof() 和 mode() 来确定。
class():给出对象的高层类型,也就是从 R 的面向对象编程角度来看的类型。根据对象是否为向量或其他数据结构,返回类型会不同。
- Integer
- Numeric
- Character
- Logical
例如,下面将分别返回 integer 类型和 numeric 类型。my.var1 = 8L返回:“integer”
my.var2 = 8.5返回:“numeric”
my.var3 = list(6,9,5)返回:“list”
例如,下面展示了一些 R 中对象的内部类型:
typeof(8+6i)返回:complex
typeof(factor(c(4,5,6)))返回:integer
您可以使用 typeof() 探索对象的内部类型,以查找对象的不同内部类型。
3.mode():它也会返回与 typeof() 相同且密切相关的值。但在以下类型上,typeof() 与 mode() 存在一些差异。
typeof(as.name('foo'))返回 “symbol”,而
mode(as.name('foo'))返回 “name”。
typeof(y~x)返回 “language”,而
mode(45L)返回 “call”。
typeof(45L)返回 “integer”,而
mode(45L)返回 “numeric”。
typeof(return)返回 “special”,而
mode(45L)返回 “function”。
删除变量
可以使用 rm() 轻松移除或删除 R 中的变量。
例如,下面代码的输出为 8。
使用 rm(my.var) 可以删除该变量。
您可以通过执行 cat(my.var) 来检查变量是否已被删除。
上述代码将产生如下错误:
Error in cat(my.var): object 'my.var' not found
恭喜
恭喜您,已经完成本教程!
在本教程中,您学习了 R 的变量、变量命名规则、变量的多种赋值方式、检查变量类型的不同方法,以及如何删除变量。
如果您想进一步学习 R,请参加 DataCamp 的 R 入门课程。
欢迎查看我们的 R 主成分分析教程。