This function computes the EAF given a set of 2D or 3D points and a vector set
that indicates to which set each point belongs.
Arguments
- points
Either a matrix or a data frame of numerical values, where each row gives the coordinates of a point.
- sets
A vector indicating which set each point belongs to.
- groups
Indicates that the EAF must be computed separately for data belonging to different groups.
- percentiles
(
numeric()) Vector indicating which percentiles are computed.NULLcomputes all.
Value
A data frame (data.frame) containing the exact representation
of EAF. The last column gives the percentile that corresponds to each
point. If groups is not NULL, then an additional column
indicates to which group the point belongs.
Note
There are several examples of data sets in system.file(package="eaf","extdata"). The current implementation only supports two and three dimensional points.
Examples
extdata_path <- system.file(package="eaf", "extdata")
x <- read_datasets(file.path(extdata_path, "example1_dat"))
# Compute full EAF
str(eafs(x[,1:2], x[,3]))
#> num [1:215, 1:3] 5128176 5134240 5142568 5144532 5155408 ...
# Compute only best, median and worst
str(eafs(x[,1:2], x[,3], percentiles = c(0, 50, 100)))
#> num [1:50, 1:3] 5128176 5134240 5142568 5144532 5155408 ...
x <- read_datasets(file.path(extdata_path, "spherical-250-10-3d.txt"))
y <- read_datasets(file.path(extdata_path, "uniform-250-10-3d.txt"))
x <- rbind(data.frame(x, groups = "spherical"),
data.frame(y, groups = "uniform"))
# Compute only median separately for each group
z <- eafs(x[,1:3], sets = x[,4], groups = x[,5], percentiles = 50)
str(z)
#> 'data.frame': 12650 obs. of 5 variables:
#> $ X1 : num 0.865 0.787 0.682 0.739 0.865 ...
#> $ X2 : num 0.966 0.966 0.997 0.966 0.926 ...
#> $ X3 : num 0.00264 0.00421 0.00483 0.00449 0.00421 ...
#> $ X4 : num 50 50 50 50 50 50 50 50 50 50 ...
#> $ groups: chr "spherical" "spherical" "spherical" "spherical" ...
# library(plotly)
# plot_ly(z, x = ~X1, y = ~X2, z = ~X3, color = ~groups,
# colors = c('#BF382A', '#0C4B8E')) %>% add_markers()