R语言 把因子转换成数字和数字转换成因子
因子是一种数据结构,用于对数据进行分类或表示分类数据,并将其存储在多个层面。它们可以被存储为整数,每一个独特的整数都有一个相应的标签。尽管因子看起来类似于字符向量,但它们是整数,在将它们作为字符串使用时必须注意。因子只接受有限数量的独特值。它有助于对数据进行分类并在多个层次上进行存储。
将因子转换为数值
有时,你需要明确地将因子改变为数字或文本。为了实现这一点,必须使用 as.character() 或 as.numeric() 函数 。 将因子转换为数字有两个步骤:
第1步: 将数据向量转换为一个因子。
factor() 命令用于在R中创建和修改因子。
第2步: 使用 as.numeric() 将因子转换为数字向量 。 当因子被转换为数字向量时,将返回与因子水平相对应的数字代码。
例如: 取一个由方向组成的数据向量’V’,其因子将被转换为数字。
输出:
转换为数字的因子: 如果因子是数字,首先将其转换为字符向量,然后再转换为数字。如果一个因子是一个字符,那么你不需要把它转换为字符。如果你试图将一个字母字符转换为数字,它将返回NA。
例子: 假设我们正在计算各种品牌的肥皂的成本,其数值为s(29, 28, 210, 28, 29)。
输出:
输出:
将数字值转换为因子
为了将数字转换为因子,我们使用 cut() 函数。 cut() 将要转换的数字向量(假设为x)的范围划分为若干个区间,并根据它们所在的区间对其值(x)进行编码。第一级对应于最左边的,第二级对应于下一个最左边的,以此类推。
语法: cut.default(x, breaks, labels = NULL, include.below = FALSE, right = TRUE, dig.lab = 3)
其中
- 当通过’break=’参数给出一个数字时,输出因子是通过将变量范围划分为该数量的等长区间来创建的。
- 在语法中include.lower表示是否应该包括等于最低的(对于right= TRUE)break的值的’x[i]’。语法中的’right’表示区间是否应该在左边打开,在右边关闭,或者反之亦然。
- 如果没有提供标签,则使用dig.lab。通过它来确定用于格式化断裂数的位数。
例1: 让我们假设一个由年龄、工资和性别组成的雇员数据集。为了创建一个与年龄相对应的、具有三个等距水平的因子,我们可以在R中写如下。
输出:
例2: 我们现在将贴上标签–年轻、中年和老年。
输出:
接下来的例子将使用 ‘norm() ‘来生成指定空间内的多变量正态分布随机变量。rnorm()有三个参数。
- n: 需要生成的随机变量的数量
- mean: 如果没有提到,其值默认为0
- sd: 需要提及标准差值,否则默认为1。
语法:
输出:
输出因子是通过break参数将变量范围划分为5个等长的区间而产生的。
输出:
输出: