X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=epclust%2FR%2FcomputeCoeffs.R;h=fca3b9188d3ceda45281070211e98adfc1adfb00;hb=23844f603a363475e85ed1cb4b8620f139bcffdf;hp=5bc4744a7ea7f5ff761bcb082c00d5eca56f5bd0;hpb=5c6529795907ba1b34d4552cbfd0e0cbb77cac0f;p=epclust.git diff --git a/epclust/R/computeCoeffs.R b/epclust/R/computeCoeffs.R index 5bc4744..fca3b91 100644 --- a/epclust/R/computeCoeffs.R +++ b/epclust/R/computeCoeffs.R @@ -27,20 +27,17 @@ computeCoeffs = function(data, index, nb_series_per_chunk, wf) coeffs_chunk } -#NOTE: always keep ID in first column curvesToCoeffs = function(series, wf) { if (!require(wavelets, quietly=TRUE)) stop("Couldn't load wavelets library") L = length(series[1,]) - D = ceiling( log2(L-1) ) + D = ceiling( log2(L) ) nb_sample_points = 2^D #TODO: parallel::parApply() ?! - res = apply(series, 1, function(x) { - interpolated_curve = spline(1:(L-1), x[2:L], n=nb_sample_points)$y + as.data.frame( apply(series, 1, function(x) { + interpolated_curve = spline(1:L, x, n=nb_sample_points)$y W = wavelets::dwt(interpolated_curve, filter=wf, D)@W - nrj_coeffs = rev( sapply( W, function(v) ( sqrt( sum(v^2) ) ) ) ) - return ( c(x[1], nrj_coeffs) ) - }) - return (as.data.frame(res)) + rev( sapply( W, function(v) ( sqrt( sum(v^2) ) ) ) ) + }) ) }