在逻辑条件判断中出现错误,序列号在R

时间:2017-11-21 17:33:24

标签: r

伙计们,我在用R做出逻辑判断时遇到了一个问题。实际上,它应该是非常直观的。虽然我不知道。

我有一个数据框" dat"和一个int var" dat"被命名为" A",我想创建另一个" B"根据" A"的值,例如,当A = 16,17或18时,我需要将B指定为6.但是当我运行" dat $ B [dat $ A = = 16:18]< - 6",即使A实际上是16或17或18,我在B中得到NA(缺失值)。然后我通过指定以下行进行检查,结果看起来很奇怪。

单独地,15 + 15 + 15,而总共是39,这怎么可能发生?!它应该是45! (实际上,我在B中获得了6个NA)

我想知道为什么会发生这种情况,因为当我根据A的其他值分配B的值时,例如" dat $ B [dat $ A == 1:3] < - 1"它工作正常。此外,A被归类为整数,并且我检查了任何其他相关的行并且它们也很好,最后,我找到了下面的问题(当使用逻辑条件判断序列号时的行)。

有没有人对此有任何想法,为什么会这样?在使用一堆数字(多个)进行逻辑条件时,是否有更好的方法可以使用?非常感谢!

  

总和(dat $ A == 16)

[1] 15

  

总和(dat $ A == 17)

[1] 15

  

总和(dat $ A == 18)

[1] 15

  

总和(dat $ A == 16:18)

[1] 39

1 个答案:

答案 0 :(得分:0)

在这种情况下,使用dat $ B [数据$ A%in%16:18]< -6

是合适的