diff --git a/.Rbuildignore b/.Rbuildignore new file mode 100644 index 0000000..91114bf --- /dev/null +++ b/.Rbuildignore @@ -0,0 +1,2 @@ +^.*\.Rproj$ +^\.Rproj\.user$ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..807ea25 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.Rproj.user +.Rhistory +.RData diff --git a/DESCRIPTION b/DESCRIPTION new file mode 100644 index 0000000..9f25876 --- /dev/null +++ b/DESCRIPTION @@ -0,0 +1,11 @@ +Package: rPID +Title: rPID - Partial information decompostion in R +Version: 0.0.0.9000 +Authors@R: person("Jens", "Preussner", email = "jens.preussner@mpi-bn.mpg.de", role = c("aut", "cre")) +Description: Implements methods for calulating entropy, mutual information and higher order measures from information theory. +Depends: R (>= 3.3.2) +License: MIT +Encoding: UTF-8 +LazyData: true +Imports: rPython +RoxygenNote: 6.0.1 diff --git a/NAMESPACE b/NAMESPACE new file mode 100644 index 0000000..9c3b09b --- /dev/null +++ b/NAMESPACE @@ -0,0 +1,4 @@ +# Generated by roxygen2: do not edit by hand + +export(bayesian_blocks) +export(discretize.bb) diff --git a/R/density_estimation.R b/R/density_estimation.R new file mode 100644 index 0000000..f756ede --- /dev/null +++ b/R/density_estimation.R @@ -0,0 +1,57 @@ +#' Discretize a matrix using the bayesian blocks algorithm +#' +#' @param X Numerical matrix to be discretized column-wise. +#' @param ... Additional parameters passed to bayesian_blocks +#' +#' @return A discretized matrix +#' +#' @export +discretize.bb <- function(X, ...) { + X <- as.matrix(X) + + ret <- apply(X, 2, function(x, ...) { + bins <- bayesian_blocks(x, ...) + bins[which.min(bins)] <- min(x) + as.numeric(cut(x, breaks = bins, include.lowest = T)) + }, ...) + + ret +} + +#' Wrapper for astroML.density_estimation.bayesian_blocks +#' +#' @param t A numeric +#' @param x A numeric +#' @param sigma Data error +#' @param fitness Fitness function +#' @param kwargs A named list of ot