[Qca-commits] r69 - in pkg: . R data inst inst/gui inst/gui/www inst/gui/www/js inst/gui/www/lib inst/gui/www/lib/Raphael inst/gui/www/lib/Raphael.InlineTextEditing-master inst/gui/www/lib/jqueryui inst/gui/www/lib/jqueryui/1.12.1 inst/gui/www/lib/jqueryui/1.12.1/images inst/gui/www/lib/raphael-paragraph inst/gui/www/lib/shiny_1.4.0 inst/gui/www/lib/smartmenus-1.0.0-beta1 inst/gui/www/lib/smartmenus-1.0.0-beta1/css inst/gui/www/lib/smartmenus-1.0.0-beta1/css/sm-mint inst/staticdocs inst/staticdocs/img man src

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Fri Oct 30 20:06:14 CET 2020


Author: dusadrian
Date: 2020-10-30 20:06:13 +0100 (Fri, 30 Oct 2020)
New Revision: 69

Added:
   pkg/R/combint.R
   pkg/R/complexity.R
   pkg/R/generate.R
   pkg/R/onUnload.R
   pkg/data/CVF.tab
   pkg/data/CVR.tab
   pkg/data/Emme.tab
   pkg/data/HC.tab
   pkg/data/Krook.tab
   pkg/data/LC.tab
   pkg/data/LF.tab
   pkg/data/LM.tab
   pkg/data/LR.tab
   pkg/data/NF.tab
   pkg/data/Quine.tab
   pkg/data/RS.tab
   pkg/data/RagStr.tab
   pkg/data/Rokkan.tab
   pkg/data/d.AS.tab
   pkg/data/d.BWB.tab
   pkg/data/d.Bas.tab
   pkg/data/d.CS.tab
   pkg/data/d.CZH.tab
   pkg/data/d.Emm.tab
   pkg/data/d.HMN.tab
   pkg/data/d.Kil.tab
   pkg/data/d.Kro.tab
   pkg/data/d.RS.tab
   pkg/data/d.SA.tab
   pkg/data/d.SS.tab
   pkg/data/d.autonomy.tab
   pkg/data/d.biodiversity.tab
   pkg/data/d.educate.tab
   pkg/data/d.education.tab
   pkg/data/d.graduate.tab
   pkg/data/d.health.tab
   pkg/data/d.homeless.tab
   pkg/data/d.jobsecurity.tab
   pkg/data/d.napoleon.tab
   pkg/data/d.pban.tab
   pkg/data/d.represent.tab
   pkg/data/d.socialsecurity.tab
   pkg/data/d.stakeholder.tab
   pkg/data/d.transport.tab
   pkg/data/d.urban.tab
   pkg/data/d.women.tab
   pkg/inst/gui/www/lib/
   pkg/inst/gui/www/lib/Raphael.InlineTextEditing-master/
   pkg/inst/gui/www/lib/Raphael.InlineTextEditing-master/LICENSE
   pkg/inst/gui/www/lib/Raphael.InlineTextEditing-master/README.md
   pkg/inst/gui/www/lib/Raphael.InlineTextEditing-master/raphael.inline_text_editing.js
   pkg/inst/gui/www/lib/Raphael/
   pkg/inst/gui/www/lib/Raphael/license.txt
   pkg/inst/gui/www/lib/Raphael/raphael-2.2.0-min.js
   pkg/inst/gui/www/lib/jquery-3.3.1.min.js
   pkg/inst/gui/www/lib/jquery-AUTHORS.txt
   pkg/inst/gui/www/lib/jquery.raphael.spinner.js
   pkg/inst/gui/www/lib/jqueryui/
   pkg/inst/gui/www/lib/jqueryui/1.12.1/
   pkg/inst/gui/www/lib/jqueryui/1.12.1/AUTHORS.txt
   pkg/inst/gui/www/lib/jqueryui/1.12.1/LICENSE.txt
   pkg/inst/gui/www/lib/jqueryui/1.12.1/images/
   pkg/inst/gui/www/lib/jqueryui/1.12.1/images/animated-overlay.gif
   pkg/inst/gui/www/lib/jqueryui/1.12.1/images/ui-bg_flat_0_aaaaaa_40x100.png
   pkg/inst/gui/www/lib/jqueryui/1.12.1/images/ui-bg_flat_75_ffffff_40x100.png
   pkg/inst/gui/www/lib/jqueryui/1.12.1/images/ui-bg_glass_55_fbf9ee_1x400.png
   pkg/inst/gui/www/lib/jqueryui/1.12.1/images/ui-bg_glass_65_ffffff_1x400.png
   pkg/inst/gui/www/lib/jqueryui/1.12.1/images/ui-bg_glass_75_dadada_1x400.png
   pkg/inst/gui/www/lib/jqueryui/1.12.1/images/ui-bg_glass_75_e6e6e6_1x400.png
   pkg/inst/gui/www/lib/jqueryui/1.12.1/images/ui-bg_glass_95_fef1ec_1x400.png
   pkg/inst/gui/www/lib/jqueryui/1.12.1/images/ui-bg_highlight-soft_75_cccccc_1x100.png
   pkg/inst/gui/www/lib/jqueryui/1.12.1/images/ui-icons_222222_256x240.png
   pkg/inst/gui/www/lib/jqueryui/1.12.1/images/ui-icons_2e83ff_256x240.png
   pkg/inst/gui/www/lib/jqueryui/1.12.1/images/ui-icons_444444_256x240.png
   pkg/inst/gui/www/lib/jqueryui/1.12.1/images/ui-icons_454545_256x240.png
   pkg/inst/gui/www/lib/jqueryui/1.12.1/images/ui-icons_888888_256x240.png
   pkg/inst/gui/www/lib/jqueryui/1.12.1/images/ui-icons_cd0a0a_256x240.png
   pkg/inst/gui/www/lib/jqueryui/1.12.1/jquery-ui.css
   pkg/inst/gui/www/lib/jqueryui/1.12.1/jquery-ui.min.js
   pkg/inst/gui/www/lib/raphael-paragraph/
   pkg/inst/gui/www/lib/raphael-paragraph/LICENSE
   pkg/inst/gui/www/lib/raphael-paragraph/raphael-paragraph.js
   pkg/inst/gui/www/lib/shiny_1.4.0/
   pkg/inst/gui/www/lib/shiny_1.4.0/shiny.css
   pkg/inst/gui/www/lib/shiny_1.4.0/shiny.js
   pkg/inst/gui/www/lib/shiny_1.4.0/shiny.js.map
   pkg/inst/gui/www/lib/smartmenus-1.0.0-beta1/
   pkg/inst/gui/www/lib/smartmenus-1.0.0-beta1/LICENSE-MIT
   pkg/inst/gui/www/lib/smartmenus-1.0.0-beta1/README.md
   pkg/inst/gui/www/lib/smartmenus-1.0.0-beta1/css/
   pkg/inst/gui/www/lib/smartmenus-1.0.0-beta1/css/sm-core-css.css
   pkg/inst/gui/www/lib/smartmenus-1.0.0-beta1/css/sm-mint/
   pkg/inst/gui/www/lib/smartmenus-1.0.0-beta1/css/sm-mint/sm-mint.css
   pkg/inst/gui/www/lib/smartmenus-1.0.0-beta1/jquery.smartmenus.js
   pkg/inst/staticdocs/SOPexpressions.html
   pkg/inst/staticdocs/generate.html
   pkg/inst/staticdocs/img/XYplot-10.svg
   pkg/inst/staticdocs/img/XYplot-11.svg
   pkg/inst/staticdocs/img/XYplot-12.svg
   pkg/inst/staticdocs/img/XYplot-13.svg
   pkg/inst/staticdocs/img/XYplot-14.svg
   pkg/inst/staticdocs/img/XYplot-15.svg
   pkg/inst/staticdocs/img/XYplot-3.svg
   pkg/inst/staticdocs/img/XYplot-5.svg
   pkg/inst/staticdocs/img/XYplot-6.svg
   pkg/inst/staticdocs/img/XYplot-7.svg
   pkg/inst/staticdocs/img/XYplot-8.svg
   pkg/inst/staticdocs/img/XYplot-9.svg
   pkg/inst/staticdocs/img/Xplot-1.svg
   pkg/inst/staticdocs/img/Xplot-2.svg
   pkg/inst/staticdocs/img/Xplot-3.svg
   pkg/inst/staticdocs/img/Xplot-4.svg
   pkg/inst/staticdocs/img/calibrate-10.svg
   pkg/inst/staticdocs/img/calibrate-12.svg
   pkg/inst/staticdocs/img/calibrate-14.svg
   pkg/inst/staticdocs/img/calibrate-16.svg
   pkg/inst/staticdocs/img/calibrate-18.svg
   pkg/inst/staticdocs/img/calibrate-20.svg
   pkg/inst/staticdocs/img/calibrate-21.svg
   pkg/inst/staticdocs/img/calibrate-22.svg
   pkg/inst/staticdocs/img/calibrate-26.svg
   pkg/inst/staticdocs/img/calibrate-3.svg
   pkg/inst/staticdocs/img/calibrate-30.svg
   pkg/inst/staticdocs/img/calibrate-31.svg
   pkg/inst/staticdocs/img/calibrate-6.svg
   pkg/inst/staticdocs/img/calibrate-8.svg
   pkg/inst/staticdocs/img/minimize-1.svg
   pkg/inst/staticdocs/img/minimize-2.svg
   pkg/inst/staticdocs/img/subsetsAndSupersets-2.svg
   pkg/inst/staticdocs/img/truthTable-20.svg
   pkg/inst/staticdocs/img/truthTable-22.svg
   pkg/man/complexity.Rd
   pkg/man/generate.Rd
   pkg/src/CCubes.c
   pkg/src/CCubes.h
   pkg/src/colamd.c
   pkg/src/colamd.h
   pkg/src/commonlib.c
   pkg/src/commonlib.h
   pkg/src/consistency.c
   pkg/src/consistency.h
   pkg/src/consistent_solution.c
   pkg/src/consistent_solution.h
   pkg/src/declare.h
   pkg/src/find_consistent_models.c
   pkg/src/find_consistent_models.h
   pkg/src/find_min.c
   pkg/src/find_min.h
   pkg/src/find_models.c
   pkg/src/find_models.h
   pkg/src/fortify.h
   pkg/src/generate_matrix.c
   pkg/src/generate_matrix.h
   pkg/src/ini.c
   pkg/src/ini.h
   pkg/src/isfixedvar.c
   pkg/src/lp_BFP.h
   pkg/src/lp_BFP1.h
   pkg/src/lp_BFP2.h
   pkg/src/lp_Hash.c
   pkg/src/lp_Hash.h
   pkg/src/lp_LUSOL.c
   pkg/src/lp_LUSOL.h
   pkg/src/lp_MDO.c
   pkg/src/lp_MDO.h
   pkg/src/lp_MPS.c
   pkg/src/lp_MPS.h
   pkg/src/lp_SOS.c
   pkg/src/lp_SOS.h
   pkg/src/lp_crash.c
   pkg/src/lp_crash.h
   pkg/src/lp_explicit.h
   pkg/src/lp_fortify.h
   pkg/src/lp_lib.c
   pkg/src/lp_lib.h
   pkg/src/lp_matrix.c
   pkg/src/lp_matrix.h
   pkg/src/lp_min.c
   pkg/src/lp_min.h
   pkg/src/lp_mipbb.c
   pkg/src/lp_mipbb.h
   pkg/src/lp_params.c
   pkg/src/lp_presolve.c
   pkg/src/lp_presolve.h
   pkg/src/lp_price.c
   pkg/src/lp_price.h
   pkg/src/lp_pricePSE.c
   pkg/src/lp_pricePSE.h
   pkg/src/lp_report.c
   pkg/src/lp_report.h
   pkg/src/lp_rlp.c
   pkg/src/lp_rlp.h
   pkg/src/lp_scale.c
   pkg/src/lp_scale.h
   pkg/src/lp_simplex.c
   pkg/src/lp_simplex.h
   pkg/src/lp_types.h
   pkg/src/lp_utils.c
   pkg/src/lp_utils.h
   pkg/src/lp_wlp.c
   pkg/src/lp_wlp.h
   pkg/src/lpkit.h
   pkg/src/lpsolve.h
   pkg/src/lusol.c
   pkg/src/lusol.h
   pkg/src/lusol1.h
   pkg/src/lusol2.h
   pkg/src/lusol6a.h
   pkg/src/lusol6l0.h
   pkg/src/lusol6u.h
   pkg/src/lusol7a.h
   pkg/src/lusol8a.h
   pkg/src/myblas.c
   pkg/src/myblas.h
   pkg/src/row_dominance.c
   pkg/src/row_dominance.h
   pkg/src/sort_cols.c
   pkg/src/sort_cols.h
   pkg/src/sort_matrix.c
   pkg/src/sort_matrix.h
   pkg/src/sparselib.c
   pkg/src/sparselib.h
   pkg/src/super_rows.c
   pkg/src/super_rows.h
   pkg/src/ufortify.h
   pkg/src/utils.c
   pkg/src/utils.h
   pkg/src/yacc_read.c
   pkg/src/yacc_read.h
Modified:
   pkg/DESCRIPTION
   pkg/NAMESPACE
   pkg/R/XYplot.R
   pkg/R/Xplot.R
   pkg/R/allExpressions.R
   pkg/R/calibrate.R
   pkg/R/causalChain.R
   pkg/R/createMatrix.R
   pkg/R/dimnames.R
   pkg/R/findRows.R
   pkg/R/findSubsets.R
   pkg/R/findSupersets.R
   pkg/R/findTh.R
   pkg/R/findmin.R
   pkg/R/fuzzyand.R
   pkg/R/fuzzyor.R
   pkg/R/getRow.R
   pkg/R/getSolution.R
   pkg/R/makeChart.R
   pkg/R/minimize.R
   pkg/R/modelFit.R
   pkg/R/onAttach.R
   pkg/R/panel.R
   pkg/R/pof.R
   pkg/R/pofind.R
   pkg/R/print.R
   pkg/R/removeRedundants.R
   pkg/R/retention.R
   pkg/R/rowDominance.R
   pkg/R/runGUI.R
   pkg/R/solveChart.R
   pkg/R/sortMatrix.R
   pkg/R/sortVector.R
   pkg/R/string.R
   pkg/R/superSubset.R
   pkg/R/truthTable.R
   pkg/R/verifyQCA.R
   pkg/R/writeSolution.R
   pkg/inst/ChangeLog
   pkg/inst/gui/server.R
   pkg/inst/gui/www/index.html
   pkg/inst/gui/www/js/maincode.js
   pkg/inst/gui/www/js/utils.js
   pkg/inst/staticdocs/CV.html
   pkg/inst/staticdocs/LegacyDatasets.html
   pkg/inst/staticdocs/Lipset.html
   pkg/inst/staticdocs/QCA.package.html
   pkg/inst/staticdocs/RS.html
   pkg/inst/staticdocs/XYplot.html
   pkg/inst/staticdocs/Xplot.html
   pkg/inst/staticdocs/calibrate.html
   pkg/inst/staticdocs/causalChain.html
   pkg/inst/staticdocs/chartFunctions.html
   pkg/inst/staticdocs/export.html
   pkg/inst/staticdocs/factorize.html
   pkg/inst/staticdocs/findRows.html
   pkg/inst/staticdocs/findTh.html
   pkg/inst/staticdocs/fuzzyops.html
   pkg/inst/staticdocs/implicantMatrixFunctions.html
   pkg/inst/staticdocs/index.html
   pkg/inst/staticdocs/intersection.html
   pkg/inst/staticdocs/minimize.html
   pkg/inst/staticdocs/modelFit.html
   pkg/inst/staticdocs/negate.html
   pkg/inst/staticdocs/pof.html
   pkg/inst/staticdocs/recode.html
   pkg/inst/staticdocs/retention.html
   pkg/inst/staticdocs/runGUI.html
   pkg/inst/staticdocs/subsetsAndSupersets.html
   pkg/inst/staticdocs/truthTable.html
   pkg/man/HC.Rd
   pkg/man/NF.Rd
   pkg/man/QCA-internal.Rd
   pkg/man/QCA.package.Rd
   pkg/man/RS.Rd
   pkg/man/XYplot.Rd
   pkg/man/Xplot.Rd
   pkg/man/calibrate.Rd
   pkg/man/causalChain.Rd
   pkg/man/chartFunctions.Rd
   pkg/man/findRows.Rd
   pkg/man/findTh.Rd
   pkg/man/fuzzyops.Rd
   pkg/man/implicantMatrixFunctions.Rd
   pkg/man/minimize.Rd
   pkg/man/modelFit.Rd
   pkg/man/pof.Rd
   pkg/man/subsetsAndSupersets.Rd
   pkg/man/truthTable.Rd
   pkg/src/Makevars
   pkg/src/QCA.c
   pkg/src/registerDynamicSymbol.c
   pkg/src/truthTable.c
Log:
version 3.10.1

Modified: pkg/DESCRIPTION
===================================================================
--- pkg/DESCRIPTION	2019-02-24 14:49:07 UTC (rev 68)
+++ pkg/DESCRIPTION	2020-10-30 19:06:13 UTC (rev 69)
@@ -1,13 +1,20 @@
 Package: QCA
-Version: 3.4-2
-Date: 2019-02-24
+Version: 3.10.1
+Date: 2020-10-30
 Title: Qualitative Comparative Analysis
-Authors at R: c(person("Adrian", "Dusa", role = c("aut", "cre", "cph"),
-                    email = "dusa.adrian at unibuc.ro"),
+Authors at R: c(person(given = "Adrian", family = "Dusa",
+                    role = c("aut", "cre", "cph"),
+                    email = "dusa.adrian at unibuc.ro",
+                    comment = c(ORCID = "0000-0002-3525-9253")),
+             person("Ciprian", "Paduraru", role = "ctb",
+                    email = "ciprian.paduraru at fmi.unibuc.ro",
+                    comment = c(ORCID = "0000-0002-4518-374X")),
              person(family = "jQuery Foundation", role = "cph",
                     comment = "jQuery library and jQuery UI library"),
              person(family = "jQuery contributors", role = c("ctb", "cph"),
-                    comment = "jQuery library; authors listed in inst/gui/www/shared/jquery-AUTHORS.txt"),
+                    comment = "jQuery library; authors listed in inst/gui/www/lib/jquery-AUTHORS.txt"),
+             person(family = "lp_solve", role = "cph",
+                    comment = "http://lpsolve.sourceforge.net"),
              person("Vasil", "Dinkov", role = c("ctb", "cph"),
                     comment = "jquery.smartmenus.js library"),
              person("Dmitry", "Baranovskiy", role = c("ctb", "cph"),
@@ -18,8 +25,9 @@
                     comment = "raphael-paragraph.js library"),
              person("Alrik", "Thiem", role = "aut",
                     comment = "from version 1.0-0 up to version 1.1-3"))
-Depends: R (>= 3.0.0)
-Imports: venn (>= 1.2), shiny, methods, fastdigest
+Depends: R (>= 3.5.0), admisc (>= 0.10)
+LazyData: yes
+Imports: methods, shiny, venn
 Description: An extensive set of functions to perform Qualitative Comparative Analysis:
              crisp sets ('csQCA'), temporal ('tQCA'), multi-value ('mvQCA')
              and fuzzy sets ('fsQCA'), using a GUI - graphical user interface.
@@ -26,13 +34,15 @@
              'QCA' is a methodology that bridges the qualitative and quantitative divide
              in social science research. It uses a Boolean algorithm that results in a
              minimal causal combination that explains a given phenomenon.
-License: GPL (>= 2)
+License: GPL (>= 3)
 NeedsCompilation: yes
-Packaged: 2019-02-24 14:46:25 UTC; dusadrian
-Author: Adrian Dusa [aut, cre, cph],
+Packaged: 2020-10-30 18:54:27 UTC; dusadrian
+Author: Adrian Dusa [aut, cre, cph] (<https://orcid.org/0000-0002-3525-9253>),
+  Ciprian Paduraru [ctb] (<https://orcid.org/0000-0002-4518-374X>),
   jQuery Foundation [cph] (jQuery library and jQuery UI library),
   jQuery contributors [ctb, cph] (jQuery library; authors listed in
-    inst/gui/www/shared/jquery-AUTHORS.txt),
+    inst/gui/www/lib/jquery-AUTHORS.txt),
+  lp_solve [cph] (http://lpsolve.sourceforge.net),
   Vasil Dinkov [ctb, cph] (jquery.smartmenus.js library),
   Dmitry Baranovskiy [ctb, cph] (raphael.js library),
   Emmanuel Quentin [ctb, cph] (raphael.inline_text_editing.js library),

Modified: pkg/NAMESPACE
===================================================================
--- pkg/NAMESPACE	2019-02-24 14:49:07 UTC (rev 68)
+++ pkg/NAMESPACE	2020-10-30 19:06:13 UTC (rev 69)
@@ -1,30 +1,23 @@
 import(shiny)
 import(venn)
-import(fastdigest)
-importFrom("utils", "packageDescription", "remove.packages", "capture.output", "data", "loadhistory", "savehistory", "tail")
+import(admisc)
+importFrom("utils", "packageDescription", "capture.output", "data", "loadhistory", "savehistory", "tail")
 importFrom("stats", "glm", "predict", "quasibinomial", "binom.test", "cutree", "dist", "hclust", "na.omit", "dbinom", "setNames")
 importFrom("grDevices", "dev.cur", "dev.new", "dev.list")
 importFrom("graphics", "abline", "axis", "box", "mtext", "par", "title", "text")
 importFrom("methods", "is")
-importFrom("fastdigest", "fastdigest")
 
 useDynLib(QCA, .registration = TRUE)
 
 export(.onAttach,
     allExpressions,
-    agteb,
-    alteb,
     as.panel,
-    asNumeric,
     calibrate,
     causalChain,
-    combinations,
-    compute,
+    combint,
+    complexity,
     createMatrix,
-    deMorgan,
     eqmcc,
-    export,
-    factorize,
     findmin,
     findRows,
     findSubsets,
@@ -32,19 +25,14 @@
     findTh,
     fuzzyand,
     fuzzyor,
-    getInfo,
-    getLevels,
+    generate,
     getRow,
-    intersection,
     makeChart,
     minimize,
     minimizeLoop,
     modelFit,
-    negate,
     pof,
     pofind,
-    prettyTable,
-    recode,
     rebuild,
     removeRedundants,
     retention,
@@ -52,15 +40,9 @@
     setRownames,
     setColnames,
     setDimnames,
-    simplify,
     solveChart,
-    sop,
-    sortExpressions,
     superSubset,
-    translate,
     truthTable,
-    uninstall,
-    validateNames,
     verify.data,
     verify.dir.exp,
     verify.minimize,
@@ -67,64 +49,31 @@
     verify.inf.test,
     verify.qca,
     verify.mqca,
-    verify.multivalue,
     verify.tt,
     Xplot,
     XYplot,
 
-    possibleNumeric,
-
-    dashes,
-    hastilde,
-    tilde1st,
-    notilde,
-    trimstr,
     nec,
     suf,
-    splitstr,
     getName,
-    getBigList,
-    splitMainComponents,
-    splitBrackets,
-    removeSingleStars,
-    splitPluses,
-    splitStars,
-    splitTildas,
-    solveBrackets,
-    simplifyList,
-    negateValues,
-    removeDuplicates,
-    getNonChars,
-    splitProducts,
-    insideBrackets,
-    outsideBrackets,
-    curlyBrackets,
-    roundBrackets,
-
     getSolution,
-    prettyString,
     rowDominance,
     sortMatrix,
     sortVector,
-    writePrimeimp,
     writeSolution,
 
-    # Electron-js specific
-    GUIcall
+    mvregexp
 )
 
-S3method(print, "aE")
-S3method(print, "chain")
-S3method(print, "deMorgan")
-S3method(print, "factorize")
-S3method(print, "fuzzy")
-S3method(print, "intersection")
-S3method(print, "modelFit")
-S3method(print, "mqca")
-S3method(print, "panel")
-S3method(print, "pic")
-S3method(print, "pof")
-S3method(print, "qca")
-S3method(print, "sS")
-S3method(print, "translate")
-S3method(print, "tt")
+S3method(print, "QCA_aE")
+S3method(print, "QCA_chain")
+S3method(print, "QCA_findmin")
+S3method(print, "QCA_fuzzy")
+S3method(print, "QCA_loopmin")
+S3method(print, "QCA_min")
+S3method(print, "QCA_modelFit")
+S3method(print, "QCA_panel")
+S3method(print, "QCA_pic")
+S3method(print, "QCA_pof")
+S3method(print, "QCA_sS")
+S3method(print, "QCA_tt")

Modified: pkg/R/XYplot.R
===================================================================
--- pkg/R/XYplot.R	2019-02-24 14:49:07 UTC (rev 68)
+++ pkg/R/XYplot.R	2020-10-30 19:06:13 UTC (rev 69)
@@ -1,4 +1,4 @@
-# Copyright (c) 2019, Adrian Dusa
+# Copyright (c) 2020, Adrian Dusa
 # All rights reserved.
 # 
 # Redistribution and use in source and binary forms, with or without
@@ -31,6 +31,10 @@
         cat("\n")
         stop(simpleError("Argument x is mandatory.\n\n"))
     }
+    x <- admisc::recreate(substitute(x))
+    if (!missing(y)) {
+        y <- admisc::recreate(substitute(y))
+    }
     via.web <- FALSE
     if (length(testarg <- which(names(other.args) == "via.web")) > 0) {
         via.web <- other.args$via.web
@@ -39,41 +43,9 @@
     negated <- logical(2)
     xname <- yname <- ""
     minus <- rawToChar(as.raw(c(226, 128, 147)))
-    testit <- capture.output(tryCatch(eval(x), error = function(e) e))
-    if (length(testit) == 1 & is.character(testit)) {
-        if (grepl("Error", testit)) {
-            x <- as.vector(funargs["x"])
-        }
-    }
     if (is.vector(x) & is.character(x) & any(grepl("\\$solution", funargs["x"]))) {
         x <- list(x)
     }
-    if (is.character(x)) {
-        if (x == tolower(x) & x != toupper(x)) {
-            if (eval.parent(parse(text = sprintf("is.element(\"%s\", ls())", toupper(x))), n = 1)) {
-                conds <- toupper(x)
-                x <- 1 - eval.parent(parse(text = sprintf("get(\"%s\")", toupper(x))), n = 1)
-                negated[1] <- TRUE
-            }
-        }
-    }
-    else {
-        testit <- capture.output(tryCatch(eval(x), error = function(e) e))
-        if (length(testit) == 1 & is.character(testit)) {
-            if (grepl("Error", testit)) {
-                x <- as.vector(deparse(funargs["x"]))
-            }
-            else if (hastilde(testit)) {
-                negated[1] <- TRUE
-                if (eval.parent(parse(text = sprintf("is.element(\"%s\", ls())", notilde(testit))), n = 1)) {
-                    x <- 1 - eval.parent(parse(text = sprintf("get(\"%s\")", notilde(testit))), n = 1)
-                }
-                else {
-                    x <- testit
-                }
-            }
-        }
-    }
     if (is.list(x)) {
         if (any(grepl("\\$solution", funargs["x"]))) {
             model <- TRUE
@@ -93,50 +65,24 @@
                 y <- as.vector(funargs["y"])
             }
         }
-        if (!is.character(y)) {
-            testit <- capture.output(tryCatch(eval(y), error = function(e) e))
-            if (length(testit) == 1 & is.character(testit)) {
-                if (grepl("Error", testit)) {
-                    y <- deparse(funargs["y"])
-                }
-                else if (hastilde(testit)) {
-                    negated[2] <- TRUE
-                    if (eval.parent(parse(text = sprintf("is.element(\"%s\", ls())", notilde(testit))), n = 1)) {
-                        y <- 1 - eval.parent(parse(text = sprintf("get(\"%s\")", notilde(testit))), n = 1)
-                    }
-                    else {
-                        y <- testit
-                    }
-                }
-            }
-        }
-        else {
-            if (y == tolower(y) & y != toupper(y)) {
-                if (eval.parent(parse(text = sprintf("is.element(\"%s\", ls())", toupper(y))), n = 1)) {
-                    conds <- toupper(y)
-                    y <- 1 - eval.parent(parse(text = sprintf("get(\"%s\")", toupper(y))), n = 1)
-                    negated[2] <- TRUE
-                }
-            }
-        }
     }
     if (is.character(x)) {
         if (length(x) == 1) {
-            x <- splitstr(x)
+            x <- admisc::splitstr(x)
         }
         if (length(x) == 1) {
-            x <- unlist(strsplit(x, split = "=>"))
+            x <- unlist(strsplit(x, split = "->|=>"))
             if (length(x) == 1) {
-                x <- unlist(strsplit(x, split = "<="))
+                x <- unlist(strsplit(x, split = "<-|<="))
                 if (length(x) > 1) {
                     relation <- "necessity"
-                    y <- trimstr(x[2])
-                    x <- trimstr(x[1])
+                    y <- admisc::trimstr(x[2])
+                    x <- admisc::trimstr(x[1])
                 }
             }
             else {
-                y <- trimstr(x[2])
-                x <- trimstr(x[1])
+                y <- admisc::trimstr(x[2])
+                x <- admisc::trimstr(x[1])
             }
             if (missing(y)) {
                 cat("\n")
@@ -144,7 +90,7 @@
             }
             else if (!is.character(y)) {
                 cat("\n")
-                stop(simpleError("x and y should be both column names from the data.\n\n"))
+                stop(simpleError("Unknown x and/or y arguments.\n\n"))
             }
         }
         else {
@@ -174,8 +120,8 @@
             cat("\n")
             stop(simpleError(paste("Incorrect expression in \"", paste(c(x, y)[checks], collapse = "\" and \""), "\".\n\n", sep = "")))
         }
-        x <- compute(x, data = data)
-        y <- compute(y, data = data)
+        x <- admisc::compute(x, data = data)
+        y <- admisc::compute(y, data = data)
         negated <- logical(2)
     }
     else if (is.data.frame(x) | is.matrix(x)) {
@@ -192,32 +138,32 @@
     else if (!missing(y)) {
         if (length(x) > 1 & is.numeric(x)) { 
             oneminus <- identical(unname(substring(gsub("[[:space:]]", "", funargs[1]), 1, 2)), "1-")
-            if (any((hastilde(funargs[1])    & !tilde1st(funargs[1])) | 
+            if (any((admisc::hastilde(funargs[1])    & !admisc::tilde1st(funargs[1])) | 
                     (grepl("1-", funargs[1]) & !oneminus)
                    )) {
                 cat("\n")
                 stop(simpleError(paste("Incorrect expression in \"", funargs[1], "\".\n\n", sep = "")))
             }
-            negated[1] <- oneminus | tilde1st(funargs[1])
+            negated[1] <- oneminus | admisc::tilde1st(funargs[1])
             xname <- "X"
             tc <- capture.output(tryCatch(getName(funargs[1]), error = function(e) e, warning = function(w) w))
             if (!grepl("simpleError", tc)) {
-                xname <- notilde(getName(funargs[1]))
+                xname <- admisc::notilde(getName(funargs[1]))
             }
         }
         if (length(y) > 1 & is.numeric(y)) { 
             oneminus <- identical(unname(substring(gsub("[[:space:]]", "", funargs[2]), 1, 2)), "1-")
-            if (any((hastilde(funargs[2])    & !tilde1st(funargs[2])) | 
+            if (any((admisc::hastilde(funargs[2])    & !admisc::tilde1st(funargs[2])) | 
                     (grepl("1-", funargs[2]) & !oneminus)
                    )) {
                 cat("\n")
                 stop(simpleError(paste("Incorrect expression in \"", funargs[2], "\".\n\n", sep = "")))
             }
-            negated[2] <- oneminus | tilde1st(funargs[2])
+            negated[2] <- oneminus | admisc::tilde1st(funargs[2])
             yname <- "Y"
             tc <- capture.output(tryCatch(getName(funargs[2]), error = function(e) e, warning = function(w) w))
             if (!grepl("simpleError", tc)) {
-                yname <- notilde(getName(funargs[2]))
+                yname <- admisc::notilde(getName(funargs[2]))
             }
         }
         if (length(y) == 1 & is.character(y)) {
@@ -235,7 +181,7 @@
                 cat("\n")
                 stop(simpleError(paste("Incorrect expression in \"", y, "\".\n\n", sep = "")))
             }
-            y <- compute(y, data = data)
+            y <- admisc::compute(y, data = data)
             negated[2] <- FALSE
         }
     }
@@ -249,6 +195,12 @@
     }
     xcopy <- x
     ycopy <- y
+    if (is.element("QCA_fuzzy", class(xcopy))) {
+        attributes(xcopy) <- NULL
+    }
+    if (is.element("QCA_fuzzy", class(ycopy))) {
+        attributes(ycopy) <- NULL
+    }
     jitfactor <- 0.01
     jitamount <- 0.01
     cexaxis <- 0.8

Modified: pkg/R/Xplot.R
===================================================================
--- pkg/R/Xplot.R	2019-02-24 14:49:07 UTC (rev 68)
+++ pkg/R/Xplot.R	2020-10-30 19:06:13 UTC (rev 69)
@@ -1,4 +1,4 @@
-# Copyright (c) 2019, Adrian Dusa
+# Copyright (c) 2020, Adrian Dusa
 # All rights reserved.
 # 
 # Redistribution and use in source and binary forms, with or without
@@ -23,7 +23,7 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-`Xplot` <- function(x, jitter = FALSE, at = NULL, ...) {
+`Xplot` <- function(x, jitter = FALSE, at = pretty(x), ...) {
     other.args <- list(...)
     funargs <- unlist(lapply(match.call(), deparse)[-1])
     xname <- getName(funargs[1])

Modified: pkg/R/allExpressions.R
===================================================================
--- pkg/R/allExpressions.R	2019-02-24 14:49:07 UTC (rev 68)
+++ pkg/R/allExpressions.R	2020-10-30 19:06:13 UTC (rev 69)
@@ -1,4 +1,4 @@
-# Copyright (c) 2019, Adrian Dusa
+# Copyright (c) 2020, Adrian Dusa
 # All rights reserved.
 # 
 # Redistribution and use in source and binary forms, with or without
@@ -24,9 +24,9 @@
 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 `allExpressions` <-
-function(noflevels, arrange = FALSE, depth = NULL, raw = FALSE, ...) {
+function(noflevels = NULL, arrange = FALSE, depth = NULL, raw = FALSE, ...) {
     result <- createMatrix(noflevels + 1, arrange = arrange, depth = depth, ... = ...) - 1
     attr(result, "raw") <- raw
-    class(result) <- c("matrix", "aE")
+    class(result) <- c("matrix", "QCA_aE")
     return(result)
 }

Modified: pkg/R/calibrate.R
===================================================================
--- pkg/R/calibrate.R	2019-02-24 14:49:07 UTC (rev 68)
+++ pkg/R/calibrate.R	2020-10-30 19:06:13 UTC (rev 69)
@@ -1,4 +1,4 @@
-# Copyright (c) 2019, Adrian Dusa
+# Copyright (c) 2020, Adrian Dusa
 # All rights reserved.
 # 
 # Redistribution and use in source and binary forms, with or without
@@ -27,6 +27,7 @@
 function (x, type = "fuzzy", method = "direct", thresholds = NA,
           logistic = TRUE, idm = 0.95, ecdf = FALSE, below = 1, above = 1, ...) {
     other.args <- list(...)
+    funargs <- lapply(lapply(match.call(), deparse)[-1], function(x) gsub("\"|[[:space:]]", "", x))
     if (is.element("q", names(other.args))) {
         above <- other.args$q
     }
@@ -33,20 +34,25 @@
     if (is.element("p", names(other.args))) {
         below <- other.args$p
     }
-    if (possibleNumeric(x)) {
-        x <- asNumeric(x) 
+    if (admisc::possibleNumeric(x)) {
+        x <- admisc::asNumeric(x) 
     }
     else {
+        if (grepl("[$]", funargs$x) & is.null(x)) {
+            x <- unlist(strsplit(funargs$x, split = "\\$"))
+            cat("\n")
+            stop(simpleError(sprintf("There is no column \"%s\" in the dataframe %s.\n\n", x[2], x[1])))
+        }
         cat("\n")
-        stop(simpleError("x is not numeric.\n\n"))
+        stop(simpleError("The input is not numeric.\n\n"))
     }
     if (!is.element(type, c("crisp", "fuzzy"))) {
         cat("\n")
-        stop(simpleError("Unknown calibration type.\n\n"))
+        stop(simpleError("Incorrect calibration type.\n\n"))
     }
     if (!is.element(method, c("direct", "indirect", "TFR"))) {
         cat("\n")
-        stop(simpleError("Unknown calibration method.\n\n"))
+        stop(simpleError("Incorrect calibration method.\n\n"))
     }
     if (method != "TFR") {
         if(all(is.na(thresholds))) {
@@ -54,14 +60,14 @@
             stop(simpleError("Threshold value(s) not specified.\n\n"))
         }
         if (is.character(thresholds) & length(thresholds) == 1) {
-            thresholds <- splitstr(thresholds)
+            thresholds <- admisc::splitstr(thresholds)
         }
-        if (possibleNumeric(thresholds)) {
+        if (admisc::possibleNumeric(thresholds)) {
             nmsths <- NULL
             if (!is.null(names(thresholds))) {
                 nmsths <- names(thresholds)
             }
-            thresholds <- asNumeric(thresholds)
+            thresholds <- admisc::asNumeric(thresholds)
             names(thresholds) <- nmsths
         }
         else {
@@ -290,6 +296,7 @@
             for (i in seq(length(thresholds))) {
                 y[x > thresholds[i]] = values[i + 1]
             }
+            x[x == 0] <- 0.00001
             fracpol <- glm(y ~ log(x) + I(x^(1/2)) + I(x^1) + I(x^2), family = quasibinomial(logit))
             fs <- round(unname(predict(fracpol, type = "response")), 6)
             fs[fs < 0.0001] <- 0

Modified: pkg/R/causalChain.R
===================================================================
--- pkg/R/causalChain.R	2019-02-24 14:49:07 UTC (rev 68)
+++ pkg/R/causalChain.R	2020-10-30 19:06:13 UTC (rev 69)
@@ -1,4 +1,4 @@
-# Copyright (c) 2019, Adrian Dusa
+# Copyright (c) 2020, Adrian Dusa
 # All rights reserved.
 # 
 # Redistribution and use in source and binary forms, with or without
@@ -41,7 +41,7 @@
         allargs$incl.cut <- 0.5
     }
     verify.qca(data)
-    noflevels  <- getLevels(data)
+    noflevels  <- admisc::getInfo(data)$noflevels
     mv <- noflevels > 2
     names(noflevels) <- names(mv) <- colnames(data)
     if (class(ordering) == "character") {
@@ -55,15 +55,16 @@
                 stop(simpleError("Causal ordering character \"<\" requires a single string.\n\n"))
             }
         }
-        ordering <- lapply(ordering, splitstr)
+        ordering <- lapply(ordering, admisc::splitstr)
     }
     if (length(allout <- unlist(ordering)) > 0) {
-        if (length(setdiff(toupper(allout), toupper(colnames(data)))) > 0) {
+        if (length(setdiff(allout, colnames(data))) > 0) {
             cat("\n")
             stop(simpleError("Some elements in the \"ordering\" argument not found in the data.\n\n"))
         }
     }
     allargs <- c(list(input = data), allargs)
+    allargs$causalChain <- TRUE
     checkpos <- function(x, arg) {
         pos <- pmatch(names(allargs), arg)
         return(pos[!is.na(pos)])
@@ -81,9 +82,7 @@
         allargs$SA <- FALSE
     }
     minimizeit <- function(allargs) {
-        tc <- tryCatch(do.call("minimize", allargs), error = function(e) e)
-        if (inherits(tc, "error")) return(NA)
-        return(tc)
+        return(tryCatch(do.call("minimize", allargs), error = function(e) NA))
     }
     allargs$enter <- FALSE
     minimize.list <- list()
@@ -106,7 +105,7 @@
                             uniqv <- sort(unique(data[, nextcols[j]]))
                             for (v in seq(noflevels[nextcols[j]] - 1)) {
                                 if (is.element(v, uniqv)) {
-                                    allargs$outcome <- sprintf("%s{%s}", nextcols[j], v)
+                                    allargs$outcome <- sprintf("%s[%s]", nextcols[j], v)
                                     minimize.list[[allargs$outcome]] <- minimizeit(allargs)
                                 }
                             }
@@ -133,7 +132,7 @@
                         uniqv <- sort(unique(data[, nextcols[j]]))
                         for (v in seq(noflevels[nextcols[j]] - 1)) {
                             if (is.element(v, uniqv)) {
-                                allargs$outcome <- sprintf("%s{%s}", nextcols[j], v)
+                                allargs$outcome <- sprintf("%s[%s]", nextcols[j], v)
                                 minimize.list[[allargs$outcome]] <- minimizeit(allargs)
                             }
                         }
@@ -152,7 +151,7 @@
                 uniqv <- sort(unique(data[, x]))
                 for (v in seq(noflevels[x] - 1)) {
                     if (is.element(v, uniqv)) {
-                        allargs$outcome <- sprintf("%s{%s}", x, v)
+                        allargs$outcome <- sprintf("%s[%s]", x, v)
                         minimize.list[[allargs$outcome]] <- minimizeit(allargs)
                     }
                 }
@@ -164,5 +163,5 @@
         }
     }
     attr(minimize.list, "call") <- metacall
-    return(structure(minimize.list, class = "chain"))
+    return(structure(minimize.list, class = "QCA_chain"))
 }

Added: pkg/R/combint.R
===================================================================
--- pkg/R/combint.R	                        (rev 0)
+++ pkg/R/combint.R	2020-10-30 19:06:13 UTC (rev 69)
@@ -0,0 +1,32 @@
+# Copyright (c) 2020, Adrian Dusa
+# All rights reserved.
+# 
+# Redistribution and use in source and binary forms, with or without
+# modification, in whole or in part, are permitted provided that the
+# following conditions are met:
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in the
+#       documentation and/or other materials provided with the distribution.
+#     * The names of its contributors may NOT be used to endorse or promote products
+#       derived from this software without specific prior written permission.
+# 
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL ADRIAN DUSA BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+`combint` <- function (n, k, ogte = 0, zerobased = FALSE) {
+    n <- as.integer(n)
+    k <- as.integer(k)
+    ogte <- as.integer(ogte)
+    zerobased <- as.integer(zerobased)
+    .Call("C_ombnk", list(n = n, k = k, ogte = ogte, zerobased = zerobased), PACKAGE = "QCA")
+}

Added: pkg/R/complexity.R
===================================================================
--- pkg/R/complexity.R	                        (rev 0)
+++ pkg/R/complexity.R	2020-10-30 19:06:13 UTC (rev 69)
@@ -0,0 +1,54 @@
+# Copyright (c) 2020, Adrian Dusa
+# All rights reserved.
+# 
+# Redistribution and use in source and binary forms, with or without
+# modification, in whole or in part, are permitted provided that the
+# following conditions are met:
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in the
+#       documentation and/or other materials provided with the distribution.
+#     * The names of its contributors may NOT be used to endorse or promote products
+#       derived from this software without specific prior written permission.
+# 
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL ADRIAN DUSA BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+complexity <- function(n, layers = NULL, noflevels = NULL) {
+    if (!is.numeric(n)) {
+        cat("\n")
+        stop(simpleError("Argument \"n\" should be numeric.\n\n"))
+    }
+    if (length(n) != 1L) {
+        cat("\n")
+        stop(simpleError("Argument \"n\" should be a scalar of length 1.\n\n"))
+    }
+    if (n < 0) {
+        cat("\n")
+        stop(simpleError("Argument \"n\" should be positive.\n\n"))
+    }
+    if (is.null(noflevels)) noflevels <- rep(2, n)
+    if (is.null(layers)) layers <- seq(n)
+    if (any(layers > n)) {
+        cat("\n")
+        stop(simpleError("Argument \"layers\" cannot be greater than \"n\".\n\n"))
+    }
+    sumk <- .Call("C_omplexity", list(as.integer(n), as.integer(layers), as.integer(noflevels)), PACKAGE = "QCA")
+    sumk[sumk < 0] <- Inf
+    return(sumk)
+    sumk <- rep(0, length(layers))
+    for (i in seq(length(layers))) {
+        sumk[i] <- sum(apply(admisc::combnk(n, layers[i]), 2, function(x) {
+            prod(noflevels[x])
+        }))
+    }
+}

Modified: pkg/R/createMatrix.R
===================================================================
--- pkg/R/createMatrix.R	2019-02-24 14:49:07 UTC (rev 68)
+++ pkg/R/createMatrix.R	2020-10-30 19:06:13 UTC (rev 69)
@@ -1,4 +1,4 @@
-# Copyright (c) 2019, Adrian Dusa
+# Copyright (c) 2020, Adrian Dusa
 # All rights reserved.
 # 
 # Redistribution and use in source and binary forms, with or without
@@ -24,10 +24,10 @@
 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 `createMatrix` <-
-function(noflevels, ...) {
+function(noflevels = NULL, ...) {
     other.args <- list(...)
     RAM <- 2
-    if ("RAM" %in% names(other.args)) {
+    if (is.element("RAM", names(other.args))) {
         if (length(other.args$RAM) == 1) {
             if (is.numeric(other.args$RAM) & other.args$RAM > 0) {
                 RAM <- other.args$RAM
@@ -35,11 +35,11 @@
         }
     }
     arrange <- FALSE
-    if ("arrange" %in% names(other.args)) {
+    if (is.element("arrange", names(other.args))) {
         arrange <- other.args$arrange
     }
     depth <- length(noflevels)
-    if ("depth" %in% names(other.args)) {
+    if (is.element("depth", names(other.args))) {
         if (!is.null(other.args$depth)) {
             if (is.numeric(other.args$depth)) {
                 depth <- other.args$depth
@@ -61,9 +61,9 @@
         cat("\n")
         stop(simpleError("The argument depth has to be an integer number."))
     }
-    if ((mem <- prod(noflevels)*length(levels)*8/1024^3) > RAM) {
+    if ((mem <- prod(noflevels) * length(levels) * 8 / 1024^3) > RAM) {
         cat("\n")
-        stop(simpleError(paste("Too much memory needed (", round(mem, 1), " Gb) to create the matrix.", sep="")))
+        stop(simpleError(paste("Too much memory needed (", round(mem, 1), " Gb) to create the matrix.", sep = "")))
     }
     noflevels <- as.integer(abs(noflevels))
     arrange <- as.integer(arrange * 1)

Modified: pkg/R/dimnames.R
===================================================================
--- pkg/R/dimnames.R	2019-02-24 14:49:07 UTC (rev 68)
+++ pkg/R/dimnames.R	2020-10-30 19:06:13 UTC (rev 69)
@@ -1,4 +1,4 @@
-# Copyright (c) 2019, Adrian Dusa
+# Copyright (c) 2020, Adrian Dusa
 # All rights reserved.
 # 
 # Redistribution and use in source and binary forms, with or without

Modified: pkg/R/findRows.R
===================================================================
--- pkg/R/findRows.R	2019-02-24 14:49:07 UTC (rev 68)
+++ pkg/R/findRows.R	2020-10-30 19:06:13 UTC (rev 69)
@@ -1,4 +1,4 @@
-# Copyright (c) 2019, Adrian Dusa
+# Copyright (c) 2020, Adrian Dusa
 # All rights reserved.
 # 
 # Redistribution and use in source and binary forms, with or without
@@ -25,6 +25,7 @@
 
 `findRows` <-
 function(expression = "", obj, remainders = TRUE, type = 1, ...) {
+    expression <- admisc::recreate(substitute(expression))
     if (any(type == 0)) {
         type <- 0
     }
@@ -37,19 +38,17 @@
         stop(simpleError("The truth table object is missing.\n\n"))
     }
     other.args <- list(...)
-    if (methods::is(obj, "tt")) {
+    if (methods::is(obj, "QCA_tt")) {
         noflevels <- obj$noflevels
         conditions <- obj$options$conditions
         if (any(is.element(type, c(0, 2, 3)))) {
             call <- as.list(obj$call)[-1]
             call$data <- obj$initial.data
-            if (obj$options$neg.out) {
-                if (tilde1st(call$outcome)) {
-                    call$outcome <- notilde(call$outcome)
-                }
+            if (admisc::tilde1st(call$outcome)) {
+                call$outcome <- admisc::notilde(call$outcome)
             }
             else {
-                call$outcome <- paste("~", call$outcome, sep = "")
+                call$outcome <- paste("~", call$outcome, sep = "")    
             }
             call$incl.cut <- rev(obj$options$incl.cut)
             if (length(other.args) > 0) {
@@ -82,10 +81,10 @@
     CSA <- NULL
     SSR <- NULL
     if (any(is.element(type, 0:1))) {
-        trexp <- attr(translate(paste(expression, collapse = "+"), snames = conditions), "retlist")
+        trexp <- attr(admisc::translate(paste(expression, collapse = "+"), snames = conditions, retlist = TRUE), "retlist")
         result <- matrix(ncol = length(trexp[[1]]), nrow = 0)
         if (is.matrix(obj)) {
-            noflevels <- getLevels(obj)
+            noflevels <- admisc::getInfo(obj)$noflevels
         }
         for (i in seq(length(trexp))) {
             rowi <- trexp[[i]]
@@ -107,7 +106,7 @@
                 result <- rbind(result, rowi)
             }
         }
-        if (methods::is(obj, "tt")) {
+        if (methods::is(obj, "QCA_tt")) {
             mbase <- rev(c(1, cumprod(rev(noflevels))))[-1]
             diffwith <- NULL
             if (remainders) {

Modified: pkg/R/findSubsets.R
===================================================================
--- pkg/R/findSubsets.R	2019-02-24 14:49:07 UTC (rev 68)
+++ pkg/R/findSubsets.R	2020-10-30 19:06:13 UTC (rev 69)
@@ -1,4 +1,4 @@
-# Copyright (c) 2019, Adrian Dusa
+# Copyright (c) 2020, Adrian Dusa
 # All rights reserved.
 # 
 # Redistribution and use in source and binary forms, with or without
@@ -24,12 +24,12 @@
 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 `findSubsets` <-
-function(input, noflevels, stop, ...) {
+function(input, noflevels = NULL, stop = NULL, ...) {
     other.args <- list(...)
-        if ("row.no" %in% names(other.args)) {
+        if (is.element("row.no", names(other.args)) & missing(input)) {
             input <- other.args$row.no
         }
-        if ("maximum" %in% names(other.args)) {
+        if (is.element("maximum", names(other.args))) {
             stop <- other.args$maximum
         }
[TRUNCATED]

To get the complete diff run:
    svnlook diff /svnroot/qca -r 69


More information about the Qca-commits mailing list