我有一个因子的向量数据,其等级为(0)否,(1)是和(8)残留物。
这是该向量的第二个元素的值data [2]: (1)是的
我不明白的是数据[2] ==“是”的值是假的。同样令人惊讶的是as.integer(data [2]]的值是2.不应该是1吗?并且数据[2] ==“是”的值不应为TRUE。
我刚刚开始使用R,所以我仍然不太了解它,但我真的不明白这一点。有人可以向我解释发生了什么事吗?
答案 0 :(得分:2)
我不确定0,1和8的来源,但请考虑这个可重复的例子:
dt
这将返回 dt[2]
的第二个元素的字符值,但我们知道它是一个因素,因为打印了因子级别。
2
[1]是
级别:否是残留
dt [2] =="是"
[1] TRUE
这会返回Yes
,因为as.integer(dt[2])
是第二个因素级。
print(dt[2])
[1] 2
在幕后,因素不是由字符表示,而是由整数因子级别表示。即使R
的结果看起来像一个字符,var IdCode1 = "SC00021";
var res = IdCode1.slice(5, 7);
也会按其因子级别对其进行评估。