This is first preview of the Incanter 2.0. This release incorporates the code implemented as part of the GSoC 2014 project "Incanter and core.matrix integration" done by Aleksandr Sorokoumov, aka Gerrrr. (For full list of changes made during GSoC, please look to wiki).
Please, note that this release includes only part of changes planned for Incanter 2.0
- Incanter now uses only core.matrix functions with
:vectorzas default implementations. You can use another implementation by adding corresponding dependency to your project file & selecting implementation using theset-current-implementationfunction. - Incanter's dataset is now based on the Dataset from core.matrix that supports both labeled columns & rows. Dataset is also a matrix now. Matrix functions work on datasets;
- Many functions are now deprecated in favor of corresponding functions from
core.matrix. These functions have
:deprecatedflag in meta-information, for full list please look to wiki.
incanter.core/matrixcalled on seq will produce vector object instead of row-matrix;- Matrices are not treated as sequences anymore, so calling
first,rest,map,reduce,filter, etc on matrices is not generally supported (although might still work on some implementations, e.g. clatrix). It's recommended to use corresponding functions from core.matrix; - API of the functions
decomp-cholesky,decomp-svd,decomp-eigenvalue,decomp-lu,decomp-qris changed to match core.matrix's implementation. See core.matrix wiki for more details; incanter.core/datasetAPI is changed. Now it accepts column names and seq of rows, matrix, map of columns or seq of row maps as arguments;- For datasets, the consecutive integers (.e.g 0, 1, 2, ...) are now used as default column names;
incanter.core/seldoes not support automatic cast between strings and keywords anymore;- 2 arguments version of
incanter.core/col-namesremoved. Please useclojure.core.matrix.dataset/select-columnsinstead.
- Instead of using scripts to perform task in every subdirectory, you can now use
lein-sub&lein-modulesplugins to do the same. Just executelein sub testorlein modules installto perform testing, or installing of every Incanter's module; - Clojure 1.6.0 is used.
kendalls-taunow returns correct value.
incanter.stats/sample-wishartthrows error during execution;- For Clatrix-based implementations, it's not always possible to construct matrix from
result of
map/filter/...
medianreturnsDouble/NaNwhen it receives empty list (PR #263);selreturns dataset when:rows :allspecified, independent on size/structure of the dataset (PR #259);- Fixed calculation of
kurtosis(PR #260); - Fixed plots legend on
group-bywhen repeated rows for the legend column are present (PR #253); - Fix for problems with gamma distribution (Issue #245);
- Fix for
rank-indexfunction (PR #261, #262).
- New functions in
incanter.chartsto work with series (PR #278):has-series?- checks, does the chart have the series with given name;remove-series- removes given series from chart;extend-line- adds new data to existing series, or creates new series if it doesn't exist.
save-svgcan also accept theOutputStream, not only the file name (PR #279).
- Fix the repl scripts (issue #215)
- Correctly handle
from-repoparameter ofget-datasetfunction - Correctly scale parameter in
sample-model-params - Columns are explicitely casted to str in
read-dataset - Correct different problems found by Eastwood lint tool
- Correctly handle missing values when using
log-axis(issue #210) - BFGS minimization routine uses
gradient-fnto estimatef-primewhen it is not provided. This also entailed changing gradient-fn to accept matrices as well as vectors. xy-plotandtime-series-plotmodified to take into accountgroup-bynames correctly for legend labels (issue #216)drawforuniform-distributionuses specified min & max parameters- Correlation coefficient now 0.0 (not NaN) with constant vector
- Fix for linear model adjusted R-squared (issue #194)
- Catch divide by zero exceptions when calculating
rho-kinfmin-bfgs - Correctly handle
:legendfortime-series-plot - Fix for
minusfor a single argument (issue #195) chisq-testworks correctly when:xis one sample collection
- New functions in
incanter.core:aggregateperforms the aggregation of data on given fields (issue #223)get-column-idreturns keyword version of column-key if convenient
- New functions in
incanter.stats:- implementation of
gamma-coefficientfunction concordant-pairsfunction
- implementation of
read-datasetnow accepts the:comment-charparameter that specifies the commentary character
- (issue #245) Incanter used the 'rate' as parameter name, although in reality this was a
'scale' parameter (https://en.wikipedia.org/wiki/Gamma_distribution). For
pdf-gamma,cdf-gamma&sample-gammafunctions the new parameter:scalewas introduced (equivalent to the old:rateparameter), and:rateparameter is now the1/:scale...
Made an error during deployment of 1.5.3, so 1.5.4 was released to fix this problem. Don't use 1.5.3!
- Issue 183: the
pow&atan2functions weren't implemented for matrices & datasets. read-datasetnow converts empty fields tonil, or user-supplied value (see Issue 182).- Documentation improvements.
- New functions in
incanter.charts:set-point-sizeto control size of points on scatter plots.
- New functions in
incanter.core:rename-colsallows to rename columns of datasetreplace-columnreplaces data in column of dataset with new valuesadd-columnallows easier to add new column to datasetadd-derived-columnadds a column to a dataset that is a function of existing columnsmeltimplements part of functionality of R'smeltfunction fromreshapepackage.
- Issue 168: the
viewfunction wasn't defined forMatrixclass - Issue 161: maximal idx for slider wasn't correctly calculated
- The
selfunction onnilwas implemented, preventing from getting errors when there was no data specified in the$datavariable - Issue 169: metadata wasn't added to
ncol&nrowfunctions - Issue 164:
to-vectwas implemented only forMatrixclass, now it works with any support data type - Issue 165:
selreturns a dataset even if result has one row, and we're selecting columns.
- Issue 166: You can use logarithmic axes (with different bases) in Incanter charts. See issue for more details
- Issue 157: when
transform-withwas used with Matrix, then source data was modified instead of working on copy of data - Issue 160: when 2-arguments version of
solvewas used, the exception was thrown
- incanter-core's matrix uses native BLAS through jBLAS/Clatrix - this greatly improves performance (on 64-bit Linux see "Known issues" section).
- several interpolation functions were added to incanter-core module (as
incanter.interpolationnamespace). - a new option is added to
heat-map-:include-zero?. - the
tailfunction was added. - new function
reorder-columnsfor a dataset that changes the order of appearance of the datset columns. It does not alter the row order. savewill print data to standard output if"-"is specified as file name.seland other functions ($,head,tail, etc.) can be used with lists (java.util.List).- the
toeplitzfunction was added to generate Toeplitz matrix for given vector. - the
scatter-plot-matrixfunction was added toincanter.chartmodule. incanter.optimizewas extended withminimizeandmaximisefunctions for performing unconstrained nonlinear optimization using the BFGS algorithm.- the new
incanter.svgmodule providessave-svgfunction to output charts to SVG files. Includeincanter-svgas dependency to use this functionality.
- for function & parametric plots, line is finished in max-range point.
- permutation matrix is returned in LU decomposition.
linear-modelnow correctly calculates t-probs.- fixed division by zero in
linear-modelfor some data.
selwill return dataset when:rowsor:colsare non-numbers - this changes previous behaviour when list was returned if only one row or col was specified.mult&mmultalways return matrices, even if it's 1x1 matrix.
-
conj'ing of matrix & vector doesn't work with new Clatrix - you can either usebind-rows, or wrap vector into another vector:(def M (matrix [[0 1] [2 3] [4 5]])) (conj M [6 7]) ; => doesn't work (bind-rows M [6 7]) ; => works (conj M [[6 7]]) ; => works
-
decomp-qrperforms only full QR decomposition, and the:typeparameter is ignored. -
On 64-bit Linux you need to install libgfortran3 package. See jblas wiki for more details
- Clatrix: 0.3.0
- Clojure: 1.5.1
- JLine: 2.11
Major changes are:
- The
incanter.sqlmodule was added to allow load datasets from databases using ClojureQL. - Support for parametric plots in
incanter.chartmodule - Bugfixes
Major changes are:
- Switch to Leiningen 2 for development
- Incanter-processing was removed. It's recommended to use Quil instead
- Updated versions of dependencies:
- Clojure: 1.4.0
- Parallelcolt: 0.10.0
math.combinatorics: 0.0.3- Apache POI (for
incanter.excel): 3.8 clj-time: 0.4.4- Congomongo: 0.3.3
incanter.core/get-input-stream&incanter.core/get-input-readerare removed in favor ofinput-stream&readerfromclojure.java.io- Many bugfixes -- thank you for all people who sent us pull requests!