{
#number of items always on 8 bytes
writeBin(0L, data_bin, size=8, endian=endian)
- if ( is_matrix )
+ if (is_matrix)
data_length = nrow(data_ascii)
else #connection
{
index = 1
repeat
{
- if ( is_matrix )
+ if (is_matrix)
{
data_chunk =
if (index <= ncol(data_ascii))
- as.double(data_ascii[,index:min(nrow(data_ascii),index+nb_per_chunk-1)])
+ as.double(data_ascii[,index:min(ncol(data_ascii),index+nb_per_chunk-1)])
else
double(0)
index = index + nb_per_chunk
data_bin = file(data_bin_file, "rb")
data_size = file.info(data_bin_file)$size
data_length = readBin(data_bin, "integer", n=1, size=8, endian=endian)
- data_ascii = sapply( indices, function(i) {
+ data_ascii = do.call( cbind, lapply( indices, function(i) {
offset = 8+(i-1)*data_length*nbytes
if (offset > data_size)
- return (vector("double",0))
+ return (NULL)
ignored = seek(data_bin, offset)
readBin(data_bin, "double", n=data_length, size=nbytes, endian=endian)
- } )
+ } ) )
close(data_bin)
- if (ncol(data_ascii)>0) data_ascii else NULL
+ data_ascii
}