causalDisco 1.2.1
CRAN release: 2026-07-20
New features
Added support for the RFCI algorithm via
rfci(), interfacing with implementations from pcalg and Tetrad.The infix edge operators
%-->%and%!-->%inknowledge()now accept+on both sides to specify multiple variables, e.g.A + B %-->% C + Dis equivalent toc(A, B) %-->% c(C, D).The infix edge operators
%-->%and%!-->%inknowledge()now support tidyselect set operations such as!,&, and|on either side, e.g.child_x1 %!-->% !starts_with("child").You can now plug a fully custom, user-written search algorithm into the causalDisco engine and run it through
disco()(viaCausalDiscoSearch$set_alg()andmake_method()). See the “Extending causalDisco with new algorithms” article for a worked example.Added
register_engine(), which lets you plug in an entirely new engine backend (i.e. one not built on bnlearn, causalDisco, pcalg, or Tetrad) so. See the “Extending causalDisco with new algorithms” article for a worked example.
Deprecated
The
summary()methods forKnowledgeandDiscoobjects are deprecated; useprint()instead.The
directed_as_undirectedargument oftpc_run(),tfci_run(), andCausalDiscoSearch$set_knowledge()is deprecated and ignored; see the related bug-fix entry below for the new handling of directed forbidden edges.The internal-only
directed_as_undirected_knowledgeargument ofmake_runner()has been removed, and thedirected_as_undirectedargument ofPcalgSearch$set_knowledge()andas_pcalg_constraints()is deprecated and ignored.as_pcalg_constraints()no longer returns afixed_edgesmatrix. pcalg’sfixedEdgesargument only protects an undirected adjacency in the skeleton, so a directed required edge (A %-->% B) cannot be honored through it.
Bug fixes
Fixed
tpc()andtfci()silently treating directed forbidden edges as undirected: forbiddingi %!-->% jalso forbiddenj !--> i. Forbidden edges now follow the same rule as the pcalg engine: both directions must be supplied explicitly, otherwise an error is raised. The exception is if theKnowledgeforbidden knowledge is equivalent to tiered knowledge.Fixed
knowledge()dropping variables fromtier()formulas when infix edge operators (%-->%,%!-->%) appeared before thetier()call and had already registered some (but not all) of the tier’s variables. This only affected the no-data-frame form ofknowledge().
Improvements
The
print()methods forKnowledgeandDiscoobjects now give a more concise and readable summary.Discoobjects now store an attributegraph_classof the actual learned graph class.Knowledgeobjects generated fromknowledge()now verifies the knowledge for requires edges doesn’t contain a directed cycle.Improved the documentation.
Reduced the number of package dependencies.
causalDisco 1.1.0
CRAN release: 2026-04-13
New features
Exports
list_registered_tetrad_algorithms()to view the custom registered Tetrad algorithms.Allows the user to specify custom conditional independence tests for use with the engines bnlearn, causalDisco, and pcalg. The custom test should have the signature
function(x, y, conditioning_set, suff_stat)(optionally with an additionalargsargument for additional parameters), and return a p-value. See the documentation and the associated vignette for details.Added support for micd tests such as
micd::gaussCItestMI()for pcalg and causalDisco engine. See all the new available tests in?PcalgSearchand?CausalDiscoSearchunder the test field.Simplified the interface for extending causalDisco with new algorithms. Exports
make_method()andmake_runner()to do this. Please see the documentation and the associated vignette for details.
Improvements
Improved speed of
tfci(),tges(), andtpc()algorithms by at least 3x, and often much more.Updated
knowledge_to_caugi()to include information about required and forbidden edges in the output.Improve documentation for many functions.
causalDisco 1.0.1
CRAN release: 2026-02-24
This release should be considered essentially a new package with many new features, and some breaking changes (mainly renaming functions, arguments, and object classes) to be consistent.
Please see the vignettes and documentation for details on using the new features.
causalDisco 0.9.5
CRAN release: 2026-01-20
- Fixed warnings and notes from R CMD check regarding documentation.
causalDisco 0.9.3
- Changed structure of tpdag and tskeleton objects so they include tamat objects rather than amat and order slots. This is a major change, not backwards compatible!
- tpc now passes … argument to skeleton() function call
- Added functionality in tpc to handle missing information when using built-in tests. Three options are now available: complete case analysis, test wise deletion, or no handling (i.e., and error is thrown if there are NAs, this is the default and it is backwards compatible).
causalDisco 0.9.2
- Fixed bug in maketikz() function so it now works with tpdag and tamat objects, and added examples to the documentation.
