[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