R 将小数转换成二进制

R 将小数转换成二进制,r,R,我一直在使用下面的代码将小数转换成二进制,但是我似乎无法将大于1069的小数转换成二进制 run_id = 1:1600 run_ids = as.data.frame(run_id) run_ids$bin = 0 for (i in 1:length(x)){ run_ids[i,2] = as.numeric(paste(rev(as.numeric(intToBits(as.numeric(run_ids[i,1])))), collapse="")) } 不幸的是,我想要转换的

我一直在使用下面的代码将小数转换成二进制,但是我似乎无法将大于1069的小数转换成二进制

run_id = 1:1600
run_ids = as.data.frame(run_id)
run_ids$bin = 0

for (i in 1:length(x)){
  run_ids[i,2] = as.numeric(paste(rev(as.numeric(intToBits(as.numeric(run_ids[i,1])))), collapse=""))
}
不幸的是,我想要转换的数字范围上升到1600。 我已尝试使用as.double、as.numeric来解决此问题,但这些方法不起作用

我错过了什么


提前感谢您能给我的任何帮助。

您的代码经过一次小的修改后就可以工作了

通过将(i in 1:length(x))的
替换为(i in run_id){
,可以获得所需的输出:


run\u id在您的示例中,
x
未定义。我可以使用您的代码(使用@RHertel correction)最多转换1600次。
intToBits()的限制
是2^31-1,即2147483647。@user5375228我看不出有什么意义。你说你不能转换大于1069的十进制数,但你的代码没有运行?但代码只运行到1069。我对它做了一些修改,以便在论坛上发布。然而,我的错误正如RHertel指出的那样,是for循环长度。Works perfec现在谢谢你。
run_id <- 1:1600
run_ids <- as.data.frame(run_id)
run_ids$bin <- 0
for (i in run_id){
  run_ids[i,2] <- as.numeric(paste(rev(as.numeric(intToBits(as.numeric(run_ids[i,1])))), collapse=""))
}
> tail(run_ids)
#     run_id         bin
#1595   1595 11000111011
#1596   1596 11000111100
#1597   1597 11000111101
#1598   1598 11000111110
#1599   1599 11000111111
#1600   1600 11001000000