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.NULL
computes 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()