Learn R Programming

quollr

Nonlinear dimension reduction (NLDR) techniques provide a low-dimensional representation of high-dimensional data by applying a non-linear transformation. The complexity of the transformations and data structure can create wildly different representations depending on the method and parameter choices. It is difficult to determine whether any are accurate, which is best, or whether they have missed structure. To help assess the NLDR and decide on which, if any, is best, we have developed an algorithm to create a model that is then used to display as a wireframe in high dimensions. The quollr package provides functions to implement the algorithm.

For a thorough background and discussion on this work, please read our paper https://arxiv.org/abs/2506.22051.

Installation

You can install the released version of quollr from CRAN with:

install.packages("quollr") 

The development version from GitHub with:

install.packages("pak")
pak::pak("JayaniLakshika/quollr")

Usage

Our approach involves dividing the high-dimensional data set into two parts: a training set to construct the model and a test set to generate model summaries. To implement our approach, first we use a 2-D embedding data set as the initial point. The output of our algorithm is a tour that displays the model overlaid on high-dimensional data. Our algorithm comprises two main phases: (1) generate the model in the 2-D space, and (2) lift the model into high-dimensional space. This methodology is available in this package.

About the name

questioning how a high-dimensional object looks in low-dimensions using r

Roadmap

Copyright

This package is licensed under the MIT license.

Copy Link

Version

Install

install.packages('quollr')

Monthly Downloads

312

Version

0.3.7

License

MIT + file LICENSE

Maintainer

Jayani P. G. Lakshika

Last Published

July 22nd, 2025

Functions in quollr (0.3.7)

find_pts

Find points in hexagonal bins
fit_highd_model

Construct the 2-D model and lift into high-dimensions
gen_scaled_data

Scaling the NLDR data
glance

Generate evaluation metrics
geom_trimesh

Create a trimesh plot
scurve_model_obj

Object for S-curve dataset
scurve

S-curve dataset with noise dimensions
get_projection

Compute Projection for High-Dimensional Data
gen_design

Generate a design to layout 2-D representations
gen_edges

Generate edge information
show_link_plots

Visualise the model overlaid on high-dimensional data along with 2-D wireframe model.
plot_rmse_layouts

Arrange RMSE plot and 2-D layouts
plot_proj

Plot Projected Data with Axes and Circles
geom_hexgrid

Create a hexgrid plot
scurve_umap_rmse

Summary with different number of bins for `scurve_umap`
predict_emb

Predict 2-D embeddings
quad

Solve Quadratic Equation for Positive Real Roots
gen_hex_coord

Generate hexagonal polygon coordinates
scurve_umap_rmse2

Summary with different number of bins for `scurve_umap2`
scurve_umap_predict

Predicted UMAP embedding for `scurve` data
show_error_link_plots

Visualise the model overlaid on high-dimensional data along with 2-D wireframe model and error.
show_langevitour

Visualise the model overlaid on high-dimensional data
update_trimesh_index

Update from and to values in trimesh data
scurve_umap2

UMAP embedding for `scurve` with n_neighbors = 10 and min_dist = 0.4
scurve_umap4

UMAP embedding for `scurve` with n_neighbors = 30 and min_dist = 0.5
scurve_umap3

UMAP embedding for `scurve` with n_neighbors = 62 and min_dist = 0.1
gen_diffbin1_errors

Generate erros and MSE for different bin widths
scurve_plts

List of plots
stat_hexgrid

stat_hexgrid Custom Stat for hexagonal grid plot
stat_trimesh

stat_trimesh Custom Stat for trimesh plot
tri_bin_centroids

Triangulate bin centroids
scurve_umap

UMAP embedding for `scurve` with n_neighbors = 15 and min_dist = 0.1
scurve_umap_rmse3

Summary with different number of bins for `scurve_umap3`
scurve_umap_rmse4

Summary with different number of bins for `scurve_umap4`
calc_2d_dist

Calculate 2-D Euclidean distances between vertices
GeomHexgrid

GeomHexgrid: A Custom ggplot2 Geom for Hexagonal Grid
assign_data

Assign data to hexagons
comb_all_data_model

Create a tibble with averaged high-dimensional data and high-dimensional data, non-linear dimension reduction data
avg_highd_data

Create a tibble with averaged high-dimensional data
calc_bins_y

Calculate the effective number of bins along x-axis and y-axis
augment

Augment Data with Predictions and Error Metrics
gen_centroids

Generate centroid coordinate
gen_axes

Generate Axes for Projection
comb_data_model

Create a tibble with averaged high-dimensional data and high-dimensional data
comb_all_data_model_error

Create a tibble with averaged high-dimensional data and high-dimensional data, non-linear dimension reduction data, model error data
extract_hexbin_mean

Extract hexagonal bin mean coordinates and the corresponding standardize counts.
GeomTrimesh

GeomTrimesh: A Custom ggplot2 Geom for Triangular Meshes
extract_hexbin_centroids

Extract hexagonal bin centroids coordinates and the corresponding standardise counts.
find_low_dens_hex

Find low-density Hexagons
compute_mean_density_hex

Compute mean density of hexagonal bins
compute_std_counts

Compute standardise counts in hexagons
find_non_empty_bins

Find the number of bins required to achieve required number of non-empty bins.
hex_binning

Hexagonal binning