测试因子的价值

时间:2017-06-30 20:28:00

标签: r

我有一个因子的向量数据,其等级为(0)否,(1)是和(8)残留物。

这是该向量的第二个元素的值data [2]: (1)是的

我不明白的是数据[2] ==“是”的值是假的。同样令人惊讶的是as.integer(data [2]]的值是2.不应该是1吗?并且数据[2] ==“是”的值不应为TRUE。

我刚刚开始使用R,所以我仍然不太了解它,但我真的不明白这一点。有人可以向我解释发生了什么事吗?

1 个答案:

答案 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); 也会按其因子级别对其进行评估。