从零开始重建因子

问题

因子用于表示从一组类别中获取值的变量,称为 R 中的级别。例如,某些实验可以通过电池的能级来表征,具有四个级别:空,低,正常和满。然后,对于 5 个不同的采样点,可以用这些术语确定这些水平如下:

正常

通常,在数据库或其他信息源中,这些数据的处理是通过与类别或级别相关联的任意整数索引。如果我们假设,对于给定的例子,我们将分配索引如下:1 =空,2 =低,3 =正常,4 =满,那么 5 个样本可以编码为:

44312

可能会发生这种情况,从你的信息源(例如数据库),你只有编码的整数列表,以及将每个整数与每个级别关键字相关联的目录。如何从该信息重建 R 因子?

我们将模拟一个代表样本的 20 个整数的向量,每个样本可能有四个不同的值之一:

set.seed(18)
ii <- sample(1:4, 20, replace=T)
ii

[1] 4 3 4 1 1 3 2 3 2 1 3 4 1 2 4 1 3 1 4 1

第一步是从前一个序列中创建一个因子,其中级别或类别正好是从 1 到 4 的数字。

fii <- factor(ii, levels=1:4) # it is necessary to indicate the numeric levels
fii

[1] 4 3 4 1 1 3 2 3 2 1 3 4 1 2 4 1 3 1 4 1
级别:1 2 3 4

现在简单地说,你必须穿上已经用索引标签创建的因子:

levels(fii) <- c("empty", "low", "normal", "full")
fii

[1]满正常全空空正常低正常低空
[11]正常满空低满空正常空满空
级别:空低正常满