fixes: TODO, debug test.clustering.R and finish writing clustering.R
[epclust.git] / epclust / R / de_serialize.R
index f04c13a..fd3a5db 100644 (file)
@@ -44,7 +44,7 @@ binarize = function(data_ascii, data_bin_file, nb_per_chunk,
        {
                #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
                {
@@ -58,11 +58,11 @@ binarize = function(data_ascii, data_bin_file, nb_per_chunk,
                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
@@ -113,13 +113,13 @@ getDataInFile = function(indices, data_bin_file, nbytes=4, endian=.Platform$endi
        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
 }