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\text{-}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\text{-}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

197

Version

1.0.6

License

MIT + file LICENSE

Maintainer

Jayani P. G. Lakshika

Last Published

December 18th, 2025

Functions in quollr (1.0.6)

get_projection

Compute Projection for High-Dimensional Data
scurve

S-curve dataset with noise dimensions
show_langevitour

Visualise the model overlaid on high-dimensional data
predict_emb

Predict 2-D embeddings
geom_hexgrid

Create a hexgrid plot
quad

Solve Quadratic Equation for Positive Real Roots
plot_proj

Plot Projected Data with Axes and Circles
stat_trimesh

stat_trimesh Custom Stat for trimesh plot
tri_bin_centroids

Triangulate bin centroids
gen_edges

Generate edge information
scurve_umap_predict

Predicted UMAP embedding for `scurve` data
gen_hex_coord

Generate hexagonal polygon coordinates
plot_hbe_layouts

Arrange HBE plot and 2-D layouts
show_error_link_plots

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

Scaling the NLDR data
show_link_plots

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

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

stat_hexgrid Custom Stat for hexagonal grid plot
scurve_model_obj

Object for S-curve dataset
scurve_umap3

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

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

S3 generic for glance
scurve_umap_rmse3

Summary with different number of bins for `scurve_umap3`
glance.highd_vis_model

Generate evaluation metrics for a hex_model object
merge_hexbin_mean

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

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

Update from and to values in trimesh data
hex_binning

Hexagonal binning
scurve_umap_rmse

Summary with different number of bins for `scurve_umap`
group_hex_pts

Grouped points in each hexagon
gen_axes

Generate Axes for Projection
gen_centroids

Generate centroid coordinate
scurve_umap_rmse2

Summary with different number of bins for `scurve_umap2`
scurve_plts

List of plots
scurve_umap

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

Summary with different number of bins for `scurve_umap4`
augment

S3 generic for augment
calc_bins_y

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

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

GeomHexgrid: A Custom ggplot2 Geom for Hexagonal Grid
avg_highd_data

Create a tibble with averaged high-dimensional data
augment.highd_vis_model

Augment Data with Predictions and Error Metrics for NLDR Models
calc_2d_dist

Calculate 2-D Euclidean distances between vertices
assign_data

Assign data to hexagons
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
fit_highd_model

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

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

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

Compute mean density of hexagonal bins
geom_trimesh

Create a trimesh plot
GeomTrimesh

GeomTrimesh: A Custom ggplot2 Geom for Triangular Meshes
compute_std_counts

Compute standardise counts in hexagons
gen_diffbin1_errors

Generate erros and MSE for different bin widths
gen_design

Generate a design to layout 2-D representations
find_low_dens_hex

Find low-density Hexagons