## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.width = 7,
fig.height = 5,
warning = FALSE
)
## ----setup--------------------------------------------------------------------
library(fcaR)
## -----------------------------------------------------------------------------
knitr::kable(planets, format = "html", booktabs = TRUE)
## ----echo = FALSE-------------------------------------------------------------
objects <- paste0("O", 1:6)
n_objects <- length(objects)
attributes <- paste0("P", 1:6)
n_attributes <- length(attributes)
I <- matrix(data = c(0, 1, 0.5, 0, 0, 0.5,
0, 1, 0.5, 0, 0, 0.5,
0.5, 1, 0, 0, 1, 0,
0.5, 0, 0, 1, 0.5, 0,
1, 0, 0, 0.5, 0, 0,
0, 0, 1, 0, 0, 1),
nrow = n_objects,
byrow = FALSE)
colnames(I) <- attributes
rownames(I) <- objects
## -----------------------------------------------------------------------------
knitr::kable(I, format = "html", booktabs = TRUE)
## -----------------------------------------------------------------------------
fc_planets <- FormalContext$new(planets)
fc_I <- FormalContext$new(I)
## -----------------------------------------------------------------------------
fc_planets$find_implications()
fc_I$find_implications()
## -----------------------------------------------------------------------------
fc_planets$implications
fc_I$implications
## -----------------------------------------------------------------------------
fc_planets$implications$get_LHS_matrix()
fc_planets$implications$get_RHS_matrix()
## -----------------------------------------------------------------------------
# Let us build a set of attributes
S <- Set$new(attributes = fc_planets$attributes)
S$assign(large = 1, far = 1)
S
fc_planets$implications$closure(S)$closure
## -----------------------------------------------------------------------------
# Let us clone the implication basis
imps <- fc_planets$implications$clone()
imps %holds_in% fc_planets
## -----------------------------------------------------------------------------
fc_planets %respects% imps
## -----------------------------------------------------------------------------
fc_planets$implications$cardinality()
## -----------------------------------------------------------------------------
sizes <- fc_planets$implications$size()
# Total number of attributes in the LHS and the RHS
colSums(sizes)
## -----------------------------------------------------------------------------
fc_planets$implications$support()
## -----------------------------------------------------------------------------
fc_planets$implications$to_latex()
## -----------------------------------------------------------------------------
# Implications with P1 and P2 in the LHS and P5 in the RHS
fc_I$implications$filter(lhs = c("P1", "P2"),
rhs = "P5")
## -----------------------------------------------------------------------------
fc_I$implications$apply_rules(rules = c("composition",
"simplification"))
## -----------------------------------------------------------------------------
# Let us build a set of attributes
S <- Set$new(attributes = fc_planets$attributes)
S$assign(large = 1, far = 1)
S
fc_planets$implications$closure(S, reduce = TRUE)
## -----------------------------------------------------------------------------
# imps is the basis
imps <- fc_planets$implications$clone()
imps2 <- imps$clone()
# imps2 is an equivalent set of implications
# where we have removed redundancies
imps2$apply_rules(c("simp", "rsimp"))
# Any implication in imps2 follows from imps
imps %entails% imps2
# And viceversa
imps2 %entails% imps
## -----------------------------------------------------------------------------
imps %~% imps2
# If we remove any implication from imps2,
# they will not be equivalent
imps %~% imps2[1:9]
## -----------------------------------------------------------------------------
S <- Set$new(attributes = fc_I$attributes)
S$assign(P1 = 1, P4 = 0.5)
fc_I$implications$recommend(S, attribute_filter = c("P3", "P5"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.