'update'
[epclust.git] / epclust / R / main.R
index f45c945..4159941 100644 (file)
@@ -7,8 +7,8 @@
 #' \itemize{
 #'   \item data.frame: each line contains its ID in the first cell, and all values after
 #'   \item connection: any R connection object (e.g. a file) providing lines as described above
-#'   \item function: a custom way to retrieve the curves; it has two arguments: the start index
-#'     (start) and number of curves (n); see example in package vignette.
+#'   \item function: a custom way to retrieve the curves; it has two arguments: the ranks to be
+#'     retrieved, and the IDs - at least one of them must be present (priority: ranks).
 #' }
 #' @param K1 Number of super-consumers to be found after stage 1 (K1 << N)
 #' @param K2 Number of clusters to be found after stage 2 (K2 << K1)
@@ -58,7 +58,7 @@ epclust = function(data, K1, K2, ntasks=1, nb_series_per_chunk=50*K1, min_series
        }
        K1 = toInteger(K1, function(x) x>=2)
        K2 = toInteger(K2, function(x) x>=2)
-       ntasks = toInteger(ntasks)
+       ntasks = toInteger(ntasks, function(x) x>=1)
        nb_series_per_chunk = toInteger(nb_series_per_chunk, function(x) x>=K1)
        min_series_per_chunk = toInteger(K1, function(x) x>=K1 && x<=nb_series_per_chunk)
        ncores_tasks = toInteger(ncores_tasks, function(x) x>=1)
@@ -76,8 +76,7 @@ epclust = function(data, K1, K2, ntasks=1, nb_series_per_chunk=50*K1, min_series
                coeffs_chunk = computeCoeffs(data, index, nb_series_per_chunk, wf)
                if (is.null(coeffs_chunk))
                        break
-               serialized_coeffs = serialize(coeffs_chunk)
-               appendBinary(coeffs_file, serialized_coeffs)
+               serialize(coeffs_chunk, coeffs_file, append=TRUE)
                index = index + nb_series_per_chunk
                nb_curves = nb_curves + nrow(coeffs_chunk)
                if (is.na(nb_coeffs))