Changes in version 1.7.14 (2026-03-29) - Added PROTECT to all getAttr calls in src. - Removed deprecated src sparse matrix functions. Changes in version 1.7.13 (2026-01-10) - Fixed link to arulesCBA in README - Fixed mailto in vignette. Changes in version 1.7.12 Changes - Fixed partial argument matches. Changes in version 1.7-11 (2025-05-29) Changes - dissimilarity(): The parameter which is now replaced with the logical items. - dissimilarity(): Added cross-dissimilarity calculation for Euclidean distances. Dissimilarities are now computed on the sparse itemMatrix objects and tests were added. - We use now the built-in R_chk_memcpy and R_chk_memset. Changes in version 1.7-10 (2025-04-22) Changes - Improved documentation for apriori and eclat. Make clear that a logical matrix is needed. Bug Fix - R 4.5.0 changes the pointers for 0-length objects which is problematic with older implementations of memcpy and some sanitizers. I added the solution used in r-lib/rlang provided by aitap (https://github.com/r-lib/rlang/pull/1797). The bug was originally reported by MichaelChirico. Changes in version 1.7-9 (2024-12-14) Internal Changes - C code: Legacy variable length arrays in structs use now C99 syntax so that UBSAN's static analysis does not report a non-existing out-of-bounds violation. Changes in version 1.7-8 (2024-08-22) Changes - Updated tests for testthat edition 3. Internal Changes - Disable internal ngCMatrix subsetting code which has issues with R-devel. We use now subsetting provided by package Matrix which is almost as fast. - Disable internal code for rowSums and colSums for ngCMatrix. - Internal code for t for ngCMatrix is now only used internally. - The custom code and the exported symbols are now deprecated and will be removed in the next major release. Bugfixes - Fixed 'Error in .basicRuleMeasure(..) unused argument (complement = TRUE)' reported by bachnguyen-tomo. - Added package anchors in man pages for ngCMatrix-class. Changes in version 1.7-7 (2023-11-29) Changes - is.significant gained parameter reuse. The default for adjust was changed to "none." - improved some error messages. - Added Wikipedia links to measures.md. - Added interest measure LIC. Bugfixes - Fixed appearance code for fim4r (reported by mytarmail). Changes in version 1.7-6 (2023-03-23) Changes - Improved the interface for fim4r. support and confidence now uses [0, 1]; added verbose and originalSupport. Bugfixes - eclat and apriori now use the next smaller representable double for minsupp to make sure that >= minsupp works. Changes in version 1.7-5 (2022-10-21) Bugfixes - discretize(): dig.lab is now correctly passed on to cut() (reported by LectronPusher). - Fixed C prototype warnings Changes in version 1.7-4 (2022-08-16) Changes - We install now the latest version of fim4r - Changes in coercion for Matrix 1.4-2 Bugfixes - eclat() now correctly returns frequent itemsets when all have exactly minsupport (reported by GauthierMagnin). Changes in version 1.7-3 (2022-01-09) Changes - Manual pages are now created using roxygen2. - support() uses now explicit arguments instead of control. - ruleInduction() uses now explicit arguments instead of control. New Feature - Added interface to fim4r algorithms. Changes in version 1.7-2 (2021-12-10) New Feature - The C APRIORI implementation can now mine frequent generator itemsets (contributed by Makh2018). Bugfixes - deparse1() needs R 4.0.0 Changes in version 1.7-1 (2021-11-19) Bugfixes - Fixed some C issues: unsigned int in bitmat.c (function static int _exists) to ensure bit shifting works. The bitmap support buffer is now initialized with zeros. Changes in version 1.7-0 (2021-11-13) New Feature - Constructors and conversion - constructor transactions() can now also create transactions from data in long format (tid, item). - rules and itemsets have now a constructor. - toLongFormat converts transactions into a long format data.frame. - Interest measures - interestMeasure for rules has now measure "table" which returns the contingency table. - new interest measure "riskRatio" was added. - interestMeasure for contingency table-based measures now accept the additional parameter smoothCounts which is added to each count to avoid counts of zero (Laplace smoothing). - new method for stats confint to calculate confidence intervals for some interest measures added. - is_redundant can now also use confidence intervals to determine statistical redundancy. - removed option "chiSquared" from crossTable. - Mining algorithms - apriori and eclat gain ... additional arguments are now added to the parameter list. - added new function is.generators to find itemset generators. - apriori and eclat now store the call in the info slot of the created associations. Changes - we use now a better check for installed suggested packages. - inspect uses now a space after the comma. - interestMeasures: reuse = TRUE now only reuses the basic measures of "support", "confidence", "coverage" and "lift". All other measures are recalculated to account for possible differences in additional parameters. - set methods are now also exported as S3 methods using package generics so they do not conflict with tidyverse (dplyr). Bug Fixes - fixed mistake in man page for weclat. Weight column needs to be called weight (reported by Alexander Ruth). - frequent itemsets now do not report "transIdenticalToItemsets" (reported by galadrielbriere). - fixed read.transactions reading in single format with header from a connection. First item is no longer dropped. Changes in version 1.6-8 (2021-05-17) New Feature - transactions have now a constructor function called transactions(). - Added new method compatible() to itemMatrix to check if the item coding is compatible between two objects. - c() now produces a warning if two itemMatrices with different itemCoding are combined. - encode and recode accept now for itemLabels also objects with an itemLabels method. - recode is now also available for associations (itemsets and rules). Changes - recode: parameter match is now deprecated. Use itemLabels Bug Fixes - fixed addAggregate problem with character (reported by javiercoh). Changes in version 1.6-7 (2021-03-16) New Features - Added interest measure confidence boost (boost) with help from Jens Harbers, Cordes & Graefe KG. Bug Fixes - interest measure improvement now does not produce inf values if no subset rule can be found. Changes in version 1.6-6 (2020-05-15) New Features - added interestMeasure rhsSupport. - added interestMeasure stdLift. - addComplement now adds variables and levels to indicate what items are complments. Changes - apriori and eclat now by default also reports coverage (ext defaults to TRUE and lhs.support is now called coverage). - addComplement now adds variables and levels itemInfo. - discretize now drops non-unique breaks with a warning (instead of producing an error). Bug Fixes - DATAFRAME now works if itemsetInfo is empty. - interestMeasure hyperlift now works without specifying transactions. - Changed c() to as.integer() for factors (R has changed). Changes in version 1.6-5 (2020-04-04) New Features - improved speed for calculating interestMeasures for rules and itemsets with no available quality information or reuse = FALSE. - Manual pages for associations were improved with examples for itemCoding. - Manual page for interestMeasures is now linked with the associated web page. - interest measure laplace (Laplace confidence) gained parameter k for the number of classes. Bug Fixes - read.transactions: Parameter encoding is now correctly passed on to scan (reported by Sisi-Wiciel). - interestMeasure was not calculating count for itemsets (reported by clcazer). - removed the duplicated interest measure: "descriptiveConfirm" use "confirmedConfidence" instead. Changes in version 1.6-4 (2019-08-29) Bug Fixes - Fixed rounding bug affecting is.closed (reported by clcazer). - Fixed TYPO in Ralambondrainy Measure (reported by andreijl). Changes in version 1.6-3 (2019-03-07) New Features - read.transactions gained parameter header to read files with column headers. Bug Fixes - Fixed PROTECT placement in C code discovered by rchk. - S4 objects use now show instead of print. Changes in version 1.6-2 (2018-12-03) New Features - discretizeDF now understands the method "none" which skips discretization. - discretizeDF now reports which column produces the problem. Changes - transactions: numeric columns are now discretized during coercion using discretizeDF (with a warning). Bug Fixes - The spurious warning for reaching maxlen in apriori is now removed (reported by Ryan J. Cole). - Fixed matrix check in function dissimilarity. Changes in version 1.6-1 (2018-04-07) Bug Fixes - discretize now handles NAs in equal frequency (reported by yarik1988). - interestMeasure: fixed error when an itemset/rules object of length 0 is provided. New Features - rules and itemsets gained a method for nitems. Changes in version 1.6-0 (2018-03-06) Major Changes - discretize: the default method is now "frequency" and categories was renamed breaks to be consistent with cut in R-base. New Features - Added interest measure "importance". - Added method items for transactions. - Added discretizeDF to apply discretization to all numeric columns in a data.frame. Bug Fixes - Fixed typo in inspect for tidLists (reported by Carlos Chavarria). - Fixed bug in %in% for itemMatrix (reported by Henrique Lemos) Changes in version 1.5-5 (2018-01-10) New Features - Added (absolute support) "count" as an interest measure. - itemLabels can now be assigned for rules and itemsets. Bug Fixes - Fixed bug in subset with signature itemMatrix, itemMatrix (reported by rwdvc). - Fixed pointer punning warning. Changes in version 1.5-4 (2017-10-12) New Features - Improved speed for read.transactions with format = "single" significantly. - Appearance for apriori now guesses the default parameter automatically and does some more checking, making the specification of templates easier. Bug Fixes - Fixed null pointer in error message code. - head does now not result in an error for empty rule sets (bug reported by cornejom). Changes in version 1.5-3 (2017-09-01) New Features - apriori and eclat return now count (absolute support count) in the quality data.frame. - Added %oin% to find transactions/itemsets that ONLY contain certain items. Bug Fixes - Improved PROTECT placement in C source code. - itemMeasures for single rules/itemsets now returns a proper data.frame (reported by lordbitin). - itemMeasures: Added missing parentheses in kappa calculation and fixed equation for least contradiction (reported by Feng Chen). Changes in version 1.5-2 (2017-03-12) New Features - apriori: maxtime = 0 disables the time limit. - is.subset/is.superset uses now fast and memory efficient C code for sparse computation (contributed by Ian Johnson). sparse = TRUE is now the default. Note that the result is now a sparse matrix. Changes in version 1.5-1 New Features - Added interest measure maxConf. - is.significant now supports in addition to Fisher's exact test, the chi-squared test. - interest measures Fisher's exact test and chi-squared (using significance = TRUE) can now produce p-values for substitutes (with complements = FALSE). - Added function DATAFRAME for more control over coercion to data.frame (e.g., use separate columns for LHS and RHS of rules). Bug Fixes - Error message for sorting with an unknown interest measure. - abbreviate works now for rules correctly. Internal Changes - Added registration code for native routines. This requires R 3.3.2. Changes in version 1.5-0 (2016-10-02) Major Changes - apriori uses now a time limit set in the parameter list with maxtime. The default is 5 seconds. Running out of time or maxlen results in a warning. The warning for low absolute support was removed. Bug Fixes - is.redundant now also marks rules with the same confidence as redundant. - plot for associations and transactions produces now a better error/warning message. - improved argument check for %pin%. Warns now for multiple patterns (was an error) and give an error for empty pattern. - inspect prints now consistently the index of rules/itemsets using brackets and starting from 1. Changes in version 1.4-2 (2016-08-06) Bug Fixes - is.redundant returned !is.redundant (reported by brisbia) - Duplicate items when coercing from list to transactions are now removed with a warning. Changes in version 1.4-1 (2016-04-14) New Features - added tail method for associations. - added/fixed encoding for read.transactions Bug Fixes - Mutual information is now calculated correctly (reported by ddessommes). Changes in version 1.4-0 (2016-03-19) New Features - The transaction class lost slot transactionInfo (we use the itemsetInfo slot now). Note that you may have to rebuild some transaction sets if you are using transactionInfo. - interestMeasure: performance improvement for "improvement" measure. - sort: speed up sort by always sorting NAs last. - head: added method head for associations for getting the best rules according to an interest measure faster than sorting all the associations first. - abbreviate is now a S4 generic with S4 methods. Bug Fixes - combining item matrices with 0 rows (reported by C. Buchta). - itemLabel recoding in is.subset (reported by sjain777). - NAMESPACE export for %in% - is.redundant: fixed and performance improvement. - Groceries: fixed typo in dataset. Changes in version 1.3-1 (2015-12-14) Major Changes - we now require R 3.2.0 so cbind in Matrix works. New Features - is.maximal is now also available for rules. - added is.significant for rules (uses Fishers exact test with correction). - added is.redundant for rules. - added support for multi-level analysis (aggregate). - APparameter: confidence shows now NA for frequent itemsets. Changes in version 1.3-0 (2015-11-14) New Features - removed deprecated WRITE and SORT functions. - subset extraction: added checks, handles now NAs and recycles for logical. - read.transactions gained arguments skip and quote and some defaults for read and write (uses now quotes and no rownames by default) have changed. - itemMatrix: coercion from matrix checks now for 0-1 matrix with a warning. - APRIORI and ECLAT report now absolute minimum support. - APRIORI: out-of-memory while rule building does now result in an error and not a memory fault. - aggregate uses now 'by' instead of 'itemLabels' to conform to aggregate in base. Bug Fixes - ruleInduction: bug fix for missing confidence values and better checking (by C. Buchta). Changes in version 1.2-1 (2015-09-21) New Features - Added many new interest measures. - interestMeasure: the formal argument method is now called measure (method is now deprecated). - Added Mushroom dataset. - Moved abbreviate from arulesViz to arules. Bug Fixes - fixed undefined behavior for left shift in reclat.c (reported by B. Ripley) Changes in version 1.2-0 (2015-09-15) Major Changes - added support for weighted association rule mining (by C. Buchta): - transactions can store weights a column called "weight" in transactionInfo. - support, itemFrequency and itemFrequencyPlot gained a parameter called weighted. - weclat extends eclat with transaction weights. - hits can be used to calculate weights from transact ions. - We are transitioning to internally use consistently data.frames with the correct number of rows for quality, itemInfo, transactionInfo and itemsetInfo. These data.frames possibly have 0 columns. - arules uses now testthat (tests are in tests/testthat). New Features - sort can now sort by several columns (used to break ties) in quality. It also gained an order parameter to return a permutation vector (order) instead. - inspect gained parameters setStart, setEnd, itemSep, ruleSep and linebreak to control output better. - read.transactions now ignores empty items (e.g., caused by trailing commas and leading or trailing white spaces). - labels now returns not a list but consistent labels for objects (transactions, itemMatrix, rules, itemsets, and tidLists). - tidLists has now an inspect method, gained coercion from "list", and has now a replacement method for dimnames(). - Coercion from itemMatrix to matrix results now in a logical matrix. - fixed as(transactions, "data.frame"). The column names do now have no prefix (except if transactionInfo contains an item called "items"). - transactions has now its own dimnames function which correctly returns transactionID from transactionInfo as rownames. - replacement method for dimnames() checks now dimensions. - item labels are now internally handled as character using stringAsFactor = FALSE in data.frames and not AsIs with I(character). - rules can now have no item in the RHS. Bug Fixes - fixed missing row labels for is.subset(). Changes in version 1.1-9 (2015-07-14) - More work on namespace. - Fixed tests. Changes in version 1.1-7 (2015-07-01) - itemUnion: fixed bug for large amounts of dense rules. - crossTable gained arguments measure and sort. - Fixed namespace imports for non-base default packages. Changes in version 1.1-6 (2014-12-08) - dissimilarity method "pearson" is now set to 1 (max) for neg. correlation. Also added phi correlation coefficient. - discretize method "cluster" accepts now ... passed on to k-means (e.g., for nstart) - merge for itemMatrix checks now for conformity - as(..., "transactions"): binary attributes are now translated into items only if TRUE. Changes in version 1.1-5 (2014-08-19) - Import drop0 from Matrix Changes in version 1.1-4 (2014-07-26) - C code: fixed problem in error message generation in apriori and eclat (this fixes the trio library problem under Windows) - C code: rapriori uses now STRING_ELT to be compatible with TERR (TIBCO) - C code: removed some unused variables. Changes in version 1.1-3 (2014-06-17) - Fixed dependency on XML and pmml - the interest measure chi-squared does now also report p-values (with significance=TRUE) - interestMeasure calculation checks now better for missing transactions - interestMeasure consistently returns now NA if not defined for a certain rule Changes in version 1.1-2 (2014-02-21) - discretize gained the parameter ordered. - itemwise set operations itemUnion, itemSetdiff and itemIntersect added. - validObject checks now rules more thoroughly - aggregate removes duplicate items from the lhs Changes in version 1.1-1 (2014-01-16) - is.superset/is.subset now makes sure that the two arguments conform using recode (number and order of items) - is.superset/is.subset returns now a matrix with appropriate dimnames - bug fix: fixed dimname bug in as(..., "dgCMatrix") for tidLists - image: labels are now passed on correctly. - tidLists has now c(). Changes in version 1.1-0 (2013-12-12) - bug fix: reuse in now passed on correctly in interestMeasures (bug reported by Ying Leung) - direct coercions from and to dgCMatrix is no longer supported use ngCMatrix instead - coercion from ngCMatrix to itemMatrix and transactions is now possible - C code: fixed misaligned address on 64-bit systems Changes in version 1.0-15 (2013-09-06) - service release Changes in version 1.0-14 (2013-05-24) - discretize handles now NAs correctly - bug fix in is.subset Changes in version 1.0-13 (2013-04-07) - transactions: coercion form data.frame now handles logical automatically. - discretize replaces categorize and offers several additional methods Changes in version 1.0-12 (2012-11-28) - Added read and write for PMML. - 'WRITE' is now deprecated, use 'write' instead - C code: Added a copy of the C subscript code from R for better performance and compatibility with arulesSequences Changes in version 1.0-11 (2012-11-19) - Fixed vignette. - Internal Changes for dimnames and subsetting Changes in version 1.0-10 (2012-09-03) - Added PACKAGE argument to C calls. - C code: Added C routine symbols to NAMESPACE for arulesSequence Changes in version 1.0-8 (2012-04-23) - fixed memory problem in eclat with tidLists=TRUE - added supportedTransactions() - is.subset/is.superset can not return a sparse matrix - added support to categorize continuous variables. Changes in version 1.0-7 (2011-11-04) - minor fixes (removed factor in dimnames for itemMatrix, warning in WRITE) - read.transactions now accepts column names to specify user and item columns (by F. Leisch) Changes in version 1.0-0 (2009-03-24) - Initial stable release version Changes in version 0.1-0 (2005-04-15) - Alpha and beta versions