オブジェクトの状態を表す数値があり、状態の 1 つを確認したいと考えています。たとえば、数値が「22」の場合、16、4、または 2 をチェックすると true を返し、それ以外の場合は false を返す必要があります。私の機能は
containsOrderType <- function(orderType, state) #returns whether the bitmask translates to containing that order type
{
state <- as.numeric(state)
if(orderType>state) return(FALSE)
binState <- as.integer(state)
class(binState) <- "binmode"
binState <- as.character(binState)
dim(binState) <- dim(state)
X<-log2(orderType)+1
if(str_sub(binState,-X,-X)==1) return(TRUE)
return(FALSE)
}
これは今日までの 1 か月間は正常に機能していましたが、dim(state) が常に「NULL」に見える dim([an integer]) を取得していることに問題があると確信しています。これは、R 2.15.3 および R 3.0.1 で発生しました。それが一貫していればわかりますが、この機能はしばらくの間意図したとおりに機能していましたが、現在は機能していません。R.Utils の intToBin 関数は次のとおりです。これは、関数の 3 ~ 6 行目と同じです。
function (x)
{
y <- as.integer(x)
class(y) <- "binmode"
y <- as.character(y)
dim(y) <- dim(x)
y
}
また
>dim
function (x) .Primitive("dim")
> class
function (x) .Primitive("class")
そのため、それらはパッケージやそのような奇妙なものによって上書きされていません.