我们说我有一个包含1,000,000行和3列的矩阵。都是整数。
我想使用writeBin将其写入二进制文件。
但是,我希望第一列和第三列是size = 4整数,但第二列是size = 1整数。
如何有效地将此矩阵写入二进制文件?
我知道我可以循环遍历矩阵的每一行并逐个编写这些元素,但它会非常慢。
以下示例慢代码:
DATA = matrix(as.integer(round(100*runif(3000000))), 1000000,3)
i1=file("test.dat","wb")
# How can I make this part below more efficient as its super slow now
for (i in 1:nrow(DATA))
{
writeBin(DATA[i,1], i1, size = 4)
writeBin(DATA[i,2], i1, size = 1)
writeBin(DATA[i,3], i1, size = 4)
}
close(i1)