r - bigz variable type from package gmp with ifelse() -


why following return error?

> x <- as.bigz(5) > y <- ifelse(1,x,0) error in ifelse(1, x, 0) :    incompatible types (from raw logical) in subassignment type fix 

i can around doing

> x <- as.bigz(5) > y <- as.bigz(ifelse(1,as.character(x),0)) 

it seems have fact that

> as.raw(5) [1] 05 

but

> as.raw(as.bigz(5))  [1] 01 00 00 00 01 00 00 00 01 00 00 00 05 00 00 00 

which suggests ifelse() doing "as.raw" automatically. still though, if

> y <- as.raw(as.bigz(5)) > y  [1] 01 00 00 00 01 00 00 00 01 00 00 00 05 00 00 00 

is possible, difference?

basically means there no ifelse.bigz method defined. base::ifelse doesn't understand bigz objects.

instead, use if ... else , since if(bigz_x [relationship operator] bigz_y) work because relationship operators have bigz methods, returning logical value if can work with.

rgames> if(1) x else 0 big integer ('bigz') : [1] 5 

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -