diff --git a/R/pid.R b/R/pid.R index 8b67028..71d1a2f 100644 --- a/R/pid.R +++ b/R/pid.R @@ -65,5 +65,10 @@ specific_information <- function(probabilities, source="x1", target="z") { term1 <- sweep(apply(probabilities, c(source, target), sum), 2, apply(probabilities, target, sum), "/") term2 <- log2(apply(probabilities, c(source,target), sum) / outer_prod) - colSums(apply(term1 * term2, 2, function(x) {x[is.nan(x)] <- 0; x})) + prod <- apply(term1 * term2, 2, function(x) {x[is.nan(x)] <- 0; x}) + if(is.null(dim(prod))) { + return(prod) + } else { + return(colSums(prod)) + } }