【发布时间】:2017-07-22 02:03:34
【问题描述】:
我正在用 R 编写一个 QC 程序来处理来自报告自身错误代码的仪器的数据。这些代码被报告为位值,所以
0
表示“一切正常”,而:-
1, 2, 4, 8, 16, 32, 64, 128
每个都代表一个独特的错误。多个错误可能同时发生,在这种情况下,代码相加得到一个新数字,例如:-
error "2" + error "32" = code "34"
而且由于这些总和都是唯一的,因此任何给定的代码值都可以分解为其构成错误。我正在寻找一种方法来编程从这些代码中识别错误。我正在努力寻找一种方法,但我能想到的一切都涉及查找表或一大堆循环......这两种方法看起来都不是很优雅。
与其重新发明轮子,我想知道是否已经存在 R 函数来执行此操作。
以前有人遇到过这种问题吗?
【问题讨论】:
-
如果你有 2 的所有幂,你可以使用按位或,例如。
bitwOr(1,2)。然后,错误的消歧就是如果在该位置出现 1,例如。bitwAnd(bitwOr(1,2),2) -
很好的解决方案@jenesaisquoi! Florian 的回答非常适合这种情况,但我不知道 R 中的位运算符,所以这真的很有帮助!
标签: r binary uniqueidentifier