diff --git a/DESCRIPTION b/DESCRIPTION
index d84e705e..6eb82fdf 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -32,6 +32,7 @@ Suggests:
care,
caret,
carSurv,
+ gausscov,
FSelectorRcpp,
knitr,
lgr,
@@ -58,6 +59,7 @@ Collate:
'FilterCorrelation.R'
'FilterDISR.R'
'FilterFindCorrelation.R'
+ 'FilterGausscovF1st.R'
'FilterImportance.R'
'FilterInformationGain.R'
'FilterJMI.R'
diff --git a/NAMESPACE b/NAMESPACE
index a2f9dd63..7c868326 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -11,6 +11,7 @@ export(FilterCarSurvScore)
export(FilterCorrelation)
export(FilterDISR)
export(FilterFindCorrelation)
+export(FilterGausscovF1st)
export(FilterImportance)
export(FilterInformationGain)
export(FilterJMI)
diff --git a/R/FilterGausscovF1st.R b/R/FilterGausscovF1st.R
new file mode 100644
index 00000000..fff53920
--- /dev/null
+++ b/R/FilterGausscovF1st.R
@@ -0,0 +1,72 @@
+#' @title Gaussian Covariate Stepwise Selection
+#'
+#' @name mlr_filters_gauscovf1st
+#'
+#' @description Gaussian covariate filter calling
+#' [gausscov::f1st()] in package \CRANpkg{gausscov}. Please read
+#' original documentation for the function form the \CRANpkg{gausscov}
+#' package.
+#'
+#' Filter supports only regression tasks.
+#'
+#' @family Filter
+#' @template seealso_filter
+#' @export
+#' @examples
+#' if (requireNamespace("FilterGausscovF1st")) {
+#' ## Gaussian Covariance (default)
+#' task = mlr3::tsk("mtcars")
+#' filter = flt("gausscov_f1st")
+#' filter$calculate(task)
+#' head(filter$scores, 3)
+#' as.data.table(filter)
+#' }
+FilterGausscovF1st = R6Class(
+ "FilterGausscovF1st",
+ inherit = Filter,
+
+ public = list(
+
+ #' @description Create a GaussCov object.
+ initialize = function() {
+ param_set = ps(
+ p0 = p_dbl(lower = 0, upper = 1, default = 0.01),
+ kmn = p_int(lower = 0, default = 0),
+ kmx = p_int(lower = 0, default = 0),
+ mx = p_int(lower = 1, default = 21),
+ kex = p_int(lower = 0, default = 0),
+ sub = p_lgl(default = TRUE),
+ inr = p_lgl(default = TRUE),
+ xinr = p_lgl(default = FALSE),
+ qq = p_int(lower = 0, default = 0)
+ )
+
+ super$initialize(
+ id = "gausscov_f1st",
+ task_types = c("regr"),
+ param_set = param_set,
+ feature_types = c("integer", "numeric"),
+ packages = "gausscov",
+ label = "Gauss Covariance f1st",
+ man = "mlr3filters::mlr_filters_gausscov_f1st"
+ )
+ }
+ ),
+
+ private = list(
+ .calculate = function(task, nfeat) {
+ pv = self$param_set$values
+ x = as.matrix(task$data(cols = task$feature_names))
+ y = as.matrix(task$truth())
+ res = invoke(gausscov::f1st, y = y, x = x, .args = pv)
+ res_1 = res[[1]]
+ res_1 = res_1[res_1[, 1] != 0, ]
+ scores = res_1[, 2]
+ attrs = task$feature_names[res_1[, 1]]
+ set_names(scores, attrs)
+ }
+ )
+)
+
+#' @include mlr_filters.R
+mlr_filters$add("gausscov_f1st", FilterGausscovF1st)
diff --git a/man/Filter.Rd b/man/Filter.Rd
index 711c07a3..e8fae340 100644
--- a/man/Filter.Rd
+++ b/man/Filter.Rd
@@ -26,6 +26,7 @@ Other Filter:
\code{\link{mlr_filters_correlation}},
\code{\link{mlr_filters_disr}},
\code{\link{mlr_filters_find_correlation}},
+\code{\link{mlr_filters_gauscovf1st}},
\code{\link{mlr_filters_importance}},
\code{\link{mlr_filters_information_gain}},
\code{\link{mlr_filters_jmim}},
diff --git a/man/mlr_filters.Rd b/man/mlr_filters.Rd
index 01ba242f..3bab7848 100644
--- a/man/mlr_filters.Rd
+++ b/man/mlr_filters.Rd
@@ -41,6 +41,7 @@ Other Filter:
\code{\link{mlr_filters_correlation}},
\code{\link{mlr_filters_disr}},
\code{\link{mlr_filters_find_correlation}},
+\code{\link{mlr_filters_gauscovf1st}},
\code{\link{mlr_filters_importance}},
\code{\link{mlr_filters_information_gain}},
\code{\link{mlr_filters_jmim}},
diff --git a/man/mlr_filters_anova.Rd b/man/mlr_filters_anova.Rd
index d9057aee..a394525d 100644
--- a/man/mlr_filters_anova.Rd
+++ b/man/mlr_filters_anova.Rd
@@ -56,6 +56,7 @@ Other Filter:
\code{\link{mlr_filters_correlation}},
\code{\link{mlr_filters_disr}},
\code{\link{mlr_filters_find_correlation}},
+\code{\link{mlr_filters_gauscovf1st}},
\code{\link{mlr_filters_importance}},
\code{\link{mlr_filters_information_gain}},
\code{\link{mlr_filters_jmim}},
diff --git a/man/mlr_filters_auc.Rd b/man/mlr_filters_auc.Rd
index cc721d1f..85180b76 100644
--- a/man/mlr_filters_auc.Rd
+++ b/man/mlr_filters_auc.Rd
@@ -52,6 +52,7 @@ Other Filter:
\code{\link{mlr_filters_correlation}},
\code{\link{mlr_filters_disr}},
\code{\link{mlr_filters_find_correlation}},
+\code{\link{mlr_filters_gauscovf1st}},
\code{\link{mlr_filters_importance}},
\code{\link{mlr_filters_information_gain}},
\code{\link{mlr_filters_jmim}},
diff --git a/man/mlr_filters_carscore.Rd b/man/mlr_filters_carscore.Rd
index cc31336d..94c049c3 100644
--- a/man/mlr_filters_carscore.Rd
+++ b/man/mlr_filters_carscore.Rd
@@ -54,6 +54,7 @@ Other Filter:
\code{\link{mlr_filters_correlation}},
\code{\link{mlr_filters_disr}},
\code{\link{mlr_filters_find_correlation}},
+\code{\link{mlr_filters_gauscovf1st}},
\code{\link{mlr_filters_importance}},
\code{\link{mlr_filters_information_gain}},
\code{\link{mlr_filters_jmim}},
diff --git a/man/mlr_filters_carsurvscore.Rd b/man/mlr_filters_carsurvscore.Rd
index 113297fc..de4947be 100644
--- a/man/mlr_filters_carsurvscore.Rd
+++ b/man/mlr_filters_carsurvscore.Rd
@@ -30,6 +30,7 @@ Other Filter:
\code{\link{mlr_filters_correlation}},
\code{\link{mlr_filters_disr}},
\code{\link{mlr_filters_find_correlation}},
+\code{\link{mlr_filters_gauscovf1st}},
\code{\link{mlr_filters_importance}},
\code{\link{mlr_filters_information_gain}},
\code{\link{mlr_filters_jmim}},
diff --git a/man/mlr_filters_cmim.Rd b/man/mlr_filters_cmim.Rd
index f837cbcb..428f3dd0 100644
--- a/man/mlr_filters_cmim.Rd
+++ b/man/mlr_filters_cmim.Rd
@@ -67,6 +67,7 @@ Other Filter:
\code{\link{mlr_filters_correlation}},
\code{\link{mlr_filters_disr}},
\code{\link{mlr_filters_find_correlation}},
+\code{\link{mlr_filters_gauscovf1st}},
\code{\link{mlr_filters_importance}},
\code{\link{mlr_filters_information_gain}},
\code{\link{mlr_filters_jmim}},
diff --git a/man/mlr_filters_correlation.Rd b/man/mlr_filters_correlation.Rd
index 92ce9a6e..9ee9b1b7 100644
--- a/man/mlr_filters_correlation.Rd
+++ b/man/mlr_filters_correlation.Rd
@@ -63,6 +63,7 @@ Other Filter:
\code{\link{mlr_filters_cmim}},
\code{\link{mlr_filters_disr}},
\code{\link{mlr_filters_find_correlation}},
+\code{\link{mlr_filters_gauscovf1st}},
\code{\link{mlr_filters_importance}},
\code{\link{mlr_filters_information_gain}},
\code{\link{mlr_filters_jmim}},
diff --git a/man/mlr_filters_disr.Rd b/man/mlr_filters_disr.Rd
index 62ae92bc..64ccea2d 100644
--- a/man/mlr_filters_disr.Rd
+++ b/man/mlr_filters_disr.Rd
@@ -67,6 +67,7 @@ Other Filter:
\code{\link{mlr_filters_cmim}},
\code{\link{mlr_filters_correlation}},
\code{\link{mlr_filters_find_correlation}},
+\code{\link{mlr_filters_gauscovf1st}},
\code{\link{mlr_filters_importance}},
\code{\link{mlr_filters_information_gain}},
\code{\link{mlr_filters_jmim}},
diff --git a/man/mlr_filters_find_correlation.Rd b/man/mlr_filters_find_correlation.Rd
index 00cc2323..6fa9d5de 100644
--- a/man/mlr_filters_find_correlation.Rd
+++ b/man/mlr_filters_find_correlation.Rd
@@ -56,6 +56,7 @@ Other Filter:
\code{\link{mlr_filters_cmim}},
\code{\link{mlr_filters_correlation}},
\code{\link{mlr_filters_disr}},
+\code{\link{mlr_filters_gauscovf1st}},
\code{\link{mlr_filters_importance}},
\code{\link{mlr_filters_information_gain}},
\code{\link{mlr_filters_jmim}},
diff --git a/man/mlr_filters_gauscovf1st.Rd b/man/mlr_filters_gauscovf1st.Rd
new file mode 100644
index 00000000..aaec214c
--- /dev/null
+++ b/man/mlr_filters_gauscovf1st.Rd
@@ -0,0 +1,104 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/FilterGausscovF1st.R
+\name{mlr_filters_gauscovf1st}
+\alias{mlr_filters_gauscovf1st}
+\alias{FilterGausscovF1st}
+\title{Gaussian Covariate Stepwise Selection}
+\description{
+Gaussian covariate filter calling
+\code{\link[gausscov:f1st]{gausscov::f1st()}} in package \CRANpkg{gausscov}. Please read
+original documentation for the function form the \CRANpkg{gausscov}
+package.
+
+Filter supports only regression tasks.
+}
+\examples{
+if (requireNamespace("FilterGausscovF1st")) {
+ ## Gaussian Covariance (default)
+ task = mlr3::tsk("mtcars")
+ filter = flt("gausscov_f1st")
+ filter$calculate(task)
+ head(filter$scores, 3)
+ as.data.table(filter)
+}
+}
+\seealso{
+\itemize{
+\item \link[mlr3pipelines:mlr_pipeops_filter]{PipeOpFilter} for filter-based feature selection.
+\item \link[mlr3misc:Dictionary]{Dictionary} of \link[=Filter]{Filters}: \link{mlr_filters}
+}
+
+Other Filter:
+\code{\link{Filter}},
+\code{\link{mlr_filters_anova}},
+\code{\link{mlr_filters_auc}},
+\code{\link{mlr_filters_carscore}},
+\code{\link{mlr_filters_carsurvscore}},
+\code{\link{mlr_filters_cmim}},
+\code{\link{mlr_filters_correlation}},
+\code{\link{mlr_filters_disr}},
+\code{\link{mlr_filters_find_correlation}},
+\code{\link{mlr_filters_importance}},
+\code{\link{mlr_filters_information_gain}},
+\code{\link{mlr_filters_jmim}},
+\code{\link{mlr_filters_jmi}},
+\code{\link{mlr_filters_kruskal_test}},
+\code{\link{mlr_filters_mim}},
+\code{\link{mlr_filters_mrmr}},
+\code{\link{mlr_filters_njmim}},
+\code{\link{mlr_filters_performance}},
+\code{\link{mlr_filters_permutation}},
+\code{\link{mlr_filters_relief}},
+\code{\link{mlr_filters_selected_features}},
+\code{\link{mlr_filters_variance}},
+\code{\link{mlr_filters}}
+}
+\concept{Filter}
+\section{Super class}{
+\code{\link[mlr3filters:Filter]{mlr3filters::Filter}} -> \code{FilterGausscovF1st}
+}
+\section{Methods}{
+\subsection{Public methods}{
+\itemize{
+\item \href{#method-FilterGausscovF1st-new}{\code{FilterGausscovF1st$new()}}
+\item \href{#method-FilterGausscovF1st-clone}{\code{FilterGausscovF1st$clone()}}
+}
+}
+\if{html}{\out{
+Inherited methods
+
+