伙计们,我在用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
答案 0 :(得分:0)
在这种情况下,使用dat $ B [数据$ A%in%16:18]< -6
是合适的