The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

funviewR

License: GPL v3 R

funviewR is an R package that analyzes R source code to detect function definitions and internal dependencies, then visualizes them as interactive network graphs.

Features

Installation

From GitHub

You can install the development version from GitHub:

# Install remotes if you don't have it
install.packages("remotes")

# Install funviewR from GitHub
remotes::install_github("deamonpog/funviewR")

Usage

Quick Start (One-Line Solution)

The easiest way to visualize dependencies:

library(funviewR)

# Analyze files or directories - auto-detects which is which!
plot_dependency_graph(c("R/", "analysis.R", "tests/"))

# Single directory
plot_dependency_graph("R/")

# Specific files
plot_dependency_graph(c("script1.R", "script2.R"))

# With options
plot_dependency_graph("src/", 
                      recursive = TRUE, 
                      include_disconnected = FALSE)

Advanced Usage (Two-Step Process)

For more control and access to analysis data:

library(funviewR)

# Step 1: Analyze files
file_paths <- c("path/to/your/script.R")
dep_info <- analyze_internal_dependencies_multi(file_paths)

# Step 2: Create visualization
plot_interactive_dependency_graph(dep_info)

Working with Directories

# Get all R files from a directory
files <- get_r_files("R/")

# Get R files recursively
files <- get_r_files("R/", recursive = TRUE)

# Then analyze
dep_info <- analyze_internal_dependencies_multi(files)
graph <- plot_interactive_dependency_graph(dep_info)

Analyzing Multiple Sources

# Mix files and directories - automatically detected!
plot_dependency_graph(c(
  "R/core/",
  "main.R",
  "R/utils/",
  "tests/",
  "helpers.R"
), recursive = TRUE)

Working with the Results

The analyze_internal_dependencies_multi() function returns a list containing:

# Access the dependency map
dep_info$dependency_map

# Check for duplicate function definitions
if (length(dep_info$duplicates) > 0) {
  print("Warning: Duplicate functions found:")
  print(dep_info$duplicates)
}

Example Output

The interactive graph provides:

Requirements

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the GNU General Public License v3.0

Author

Chathura Jayalath - Email: acj.chathura@gmail.com

Acknowledgments

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.