跳至主要内容

权威指南:R 中的变量教程

在本教程中,您将全面了解 R 变量,包括如何定义变量、删除变量等。
· 4分钟 阅读

使用 AI 探索

变量

变量是内存中的标识符或具名空间,其值被存储,之后可在程序中引用和操作。R 是一种动态类型、解释型语言,变量及其他对象的类型检查在运行时完成。这也意味着 R 的解释器不会强制程序员在使用前显式声明变量的“数据类型”。

R 中变量命名规则

    1. 变量名必须以字母开头,可以包含数字、字母、下划线(“”)和点(“.”)。

示例:

      variableName1,new.variable,
      • 变量名开头不允许使用下划线('')。

示例:

        “_my_var” 不是有效的变量名。
      • 变量名开头允许使用点(“.”),但其后不应紧跟数字。在 R 中更推荐使用“.”来帮助分隔标识符中的不同单词。

示例:

      “.myvar” 是有效的变量名。但“.1myvar” 不是有效变量名,因为点后紧跟数字是无效的。
  1. 保留字或关键字不能用作变量名。
  2. 如“#”“&”等特殊字符,以及空白字符(制表符、空格)不能出现在变量名中。

变量赋值

在 R 中,可以通过以下三种方式进行赋值。

  1. 赋值运算符:“=” 用于赋值。下面的示例将值 20 存储到变量“first.variable”中。示例:first.variable = 20

  2. “<-” 运算符:下面的示例将字符 New Program 赋给“second.variable”。
    示例:second.variable <- "New Program"

  3. “->” 运算符:下面的示例将整数 565 赋给“third.variable”。
    示例:565 -> third.variable

变量类型

R 中变量的类型可通过 class()、typeof() 和 mode() 来确定。

  1. 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”
  1. 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'))

      返回 “symbol”,而

mode(as.name('foo'))

      返回 “name”。



    • typeof() 中的类型 “language” 在 mode() 中返回为 “(” 或 “call”
    • 例如:

typeof(y~x)

      返回 “language”,而

mode(45L)

      返回 “call”。



    • typeof() 中的 “integer” 和 “double” 在 mode() 中都返回为 “numeric”
    • 例如:

typeof(45L)

      返回 “integer”,而

mode(45L)

      返回 “numeric”。



    • typeof() 中的 “special” 和 “builtin” 在 mode() 中都返回为 “function”
    • 例如:

typeof(return)

      返回 “special”,而

mode(45L)

      返回 “function”。

删除变量

可以使用 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 主成分分析教程。

主题