
ISMtools is a comprehensive R package for Interpretive Structural Modelling (ISM) analysis. ISM is a methodology for identifying and summarizing relationships among specific elements which define an issue or problem.
The package provides:
install.packages("ISMtools")
library(ISMtools)
# Create an adjacency matrix
adj_matrix <- matrix(c(
0, 1, 0, 0, 0,
0, 0, 1, 0, 0,
0, 0, 0, 1, 1,
0, 0, 0, 0, 0,
0, 0, 0, 0, 0
), nrow = 5, byrow = TRUE)
# Compute reachability matrix
reach_matrix <- compute_reachability(adj_matrix)
# Perform level partitioning
levels <- level_partitioning(reach_matrix)
print(levels)
# Visualize the ISM structure
plot_ism(reach_matrix)
# Optional interactive visualization
if (requireNamespace("visNetwork", quietly = TRUE)) {
plot_interactive_ism(reach_matrix)
}
| Function | Description |
|----------|-------------|
| create_relation_matrix() | Create or convert adjacency matrices |
| convert_to_matrix() | Convert edge lists to adjacency matrices |
| compute_reachability() | Calculate reachability matrix using Warshall's algorithm |
| level_partitioning() | Perform hierarchical level decomposition |
| plot_ism() | Static ISM structure visualization |
| plot_interactive_ism() | Interactive ISM visualization with drag-and-drop |
# From data frame
edge_df <- data.frame(
source = c("A", "A", "B", "C"),
target = c("B", "C", "D", "D")
)
adj_matrix <- convert_to_matrix(edge_df, from = "source", to = "target")
# From matrix edge list
edge_mat <- matrix(c("A", "B", "B", "C", "C", "D"), ncol = 2, byrow = TRUE)
adj_matrix <- convert_to_matrix(edge_mat)
If you use ISMtools in your research, please cite:
Tang Y (2026). ISMtools: Interpretive Structural Modelling Analysis Tools.
MIT. See LICENSE.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.