R写二进制数据

其他

我有三个尺寸相同的大向量。我需要按一定顺序将它们写在二进制文件中:两个整数后跟一个双精度数。例:

a <- c(1,2,3,4) #integers
b <- c(5,6,7,8) #integers
d <- c(1.32421, 1.42342134123,21.4123412361,1.123412346) #doubles
# desired order:
# 1, 5, 1.32421, 2, 6, 1.42342134123, 3, 7, 21.4123412361, 4, 8, 1.12344112346

我想用循环做它。可能吗?这是此示例的实际代码:

con_ <- "a"
file.create(con_)
con <- file(con_,"wb")
for(i in seq(1,length(a))){
  ve <- c(a[i],b[i])
  writeBin(ve,con, size = 4)
  writeBin(d[i],con, size = 8)
}
罗纳克·沙

您可以rbind将向量按所需顺序获得。

c(rbind(a, b, d))
#Similar to
#c(t(cbind(a, b, d)))

#[1]  1.00  5.00  1.32  2.00  6.00  1.42  3.00  7.00 21.41  4.00  8.00  1.12

请注意,向量中只能包含一个类别的数据。因此,在此示例中,所有这些都变成了数字。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章