R因素和级别

问题描述:

级别有意义,它是矢量的独特值,但我无法弄清楚是什么因素。它似乎只是重复了矢量值。R因素和级别

factor(c(1,2,3,3,4,5,1)) 
[1] 1 2 3 3 4 5 1 
Levels: 1 2 3 4 5 

任何人都可以解释什么因素应该做,或为什么我会用它?

我开始怀疑因素是否像数据库中的代码表。其中因素名称是代码表名称,级别是代码表的唯一选项。 ?

+0

当拟合统计模型时,分类数据(因子)通常被视为非常不同而不是连续或数字数据。如果你不这样做,你可能根本不需要使用因素。 – joran

+0

我可以在下拉列表中看到关卡是独特的选项,但我仍然不明白因素 – user1854438

+0

这只是一个整数向量,以及一系列可以视为整数映射到的“关卡”的集合。因此,例如,您可能有一个变量'Gender',其值为'M'和'F'。作为一个因素,这只是1和2的序列,其中1 = F和2 = M。 – joran

因子存储为散列表而不是原始字符向量。这意味着什么?有两个主要的好处。

  1. 更小的内存占用。考虑一个文本文件,其中包含短语“新泽西州”100,000次编码的ASCII码。现在想象一下,如果你只需要存储数字16(二进制100,000次,然后另一个表格表明16表示“新泽西州”),它会更精简和更快。值“跨所有类别”(想想方差分析或者你将颜色叠加的barplot)我们可以重复编码我们所有的函数来将观察到的选择叠加在一个字符串向量中,或者我们可以简单地创建一个新类型的向量,告诉你什么是有效的选择,这就是所谓的一个因子,有效的选择叫做级别

+0

我相信因为R为所有字符值添加了一个全局哈希表,所以因素的记忆优势相对较小。 – joran