我正在寻找一个函数来获取因子变量的原始映射表。我导入一个Rdata文件。我有一个名为" FactVar"的因子变量。我知道" FactVar"的映射表。如下:
"010025" -> city1
"015146" -> city2
"048017" -> city3
"082053" -> city4
在我的数据框中," FactVar"数据如下(前5例):
1: city1
2: city3
3: city4
4: city1
5: city3
所以,没有" city2"在我的df。我可以使用哪个函数来获取原始映射表?它在我的Rdata文件中可用吗?
谢谢
编辑: 我试着通过一个更好的例子来澄清我的问题。我有一个调查问题,其中包含以下可能的答案:
1: "Yes"
2: "No"
8: "Don't Know"
9: "Not Applicable"
我创建了一个因子变量" FactVar":
Var <- c(1,2,1,2,2,2,1,8,1,2)
FactVar <- factor(Var, levels=c(1,2,8,9), labels=c("Yes", "No", "Don't Know", "Not Applicable")
如您所见,在我的Rdata文件中,我有一个因子变量,其中没有数据链接到级别&#34;不适用&#34;。如何在调查问题中获得原始映射表?
答案 0 :(得分:1)
我认为答案是&#34;没有。&#34;我没有任何明确的信息来支持这一点,但即使仔细查看factor
及相关功能的文档,我也看不到任何恢复原始级别的方法,除非您单独存储它们(例如,作为attribute
,或者在创建因子时保存原始函数调用。
坦率地说,我认为这对程序的设计有些疏忽,虽然它肯定是一个边缘情况(我之前从未考虑过),但我还是这样。我将在这个问题上给予赏金,并希望它得到Dirk Eddelbuettel或其他R大师之一的关注。
编辑:我没有看到&#34;添加赏金&#34;按钮。也许它会在几天内出现(希望我记得)。
答案 1 :(得分:1)
之前我有过这个问题,在这里得到了解答:How to access actual internal factor lookup hashtable in R
抱歉,我没有足够的声誉将其置于评论中。
答案 2 :(得分:0)
不确定我明白你的意思。 您可以为因子的级别指定标签。
df$FactVar <- factor(df$FactVar, levels=c(paste0("city", 1:4))) # assuming you go up to 'city4'
重点是您可以使用函数levels
中的factor
参数以任意顺序指定级别
答案 3 :(得分:0)
str(FactVar)
将返回级别及其标签之间的映射,如下所示:
FactVar <- factor(Var, levels=c(1,2,8,9), labels=c("Yes", "No", "Don't Know", "Not Applicable
并将包含未使用因素的标签和级别。