### What is rPref?

rPref is a package for the *statistical computing language R* for Skyline computation and some slight generalizations of it (*"database preferences"*).

The Skyline calculation in rPref is done very efficiently as all performance critical algorithms are written in C++.

### Get started

rPref is available on CRAN, hence it can be downloaded and installed by:

install.packages("rPref")

# Load package

library(rPref)

### News

Recent publications about rPref:

- M. Endres, P. Roocks, W. Kießling. Scalagon: An Efficient Skyline Algorithm for all Seasons.
*In Database Systems for Advanced Applications (DASFAA 2015).*

(The Scalagon algorithm is the default method for processing Pareto preferences in rPref) - P. Roocks. Preference Decomposition and the Expressiveness of Preference Query Languages.
*In Mathematics of Program Construction (MPC 2015).*

(Theoretical research about the expressiveness of the preference query language of rPref)

**2016-04-21:** rPref v1.0 is on CRAN now. The changes include:

- New function get_btg_dot for generating Better-Than-Graphs with the dot layouter.
- Fixed compatibility issues with new versions of dplyr and testthat.

**2016-01-19:** With pypref 0.0.1 there exists a first Python port of rPref. The preference algorithms are written in Cython.

**2015-11-17:** New Shiny app for SVM separation of Pareto optima and level-n tuples.

### What is a Skyline?

The Skyline of a data set selects tuples which are Pareto-optimal with respect to given optimization goals. Only those tuples are returned which are not dominated by any other tuple. A tuple dominates another tuple if it is better in all relevant dimensions and strictly better in at least one dimension.

Hence, the computation of the Skyline is a powerful tool for prefiltering large data sets under given optimization goals. A typical example from economics is the search for products with low price and high quality. In this case one typically assumes that products which are worse in both dimensions (price and quality) are not interesting. Thus, a Pareto query optimizing for low price and high quality only returns the potentially interesting products. See examples or the linked papers to get a better understanding of Skylines and database preferences.