File: lambda.reg.bayes.R

package info (click to toggle)
r-cran-eipack 0.2-2-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 476 kB
  • sloc: ansic: 1,155; makefile: 5
file content (30 lines) | stat: -rw-r--r-- 1,077 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
lambda.reg.bayes <- function(object, columns, ret.mcmc = TRUE){

  if (inherits(object,"eiRegBayes")==FALSE)
    stop("'object' must be output from 'ei.reg.bayes'")
  if (missing(columns) | length(columns) < 2)
    stop("'columns' requires at least two column names")

  lambda.out <- array(NA, dim=c(length(rownames(object$draws)),
                       length(columns), dim(object$draws)[3]))
  rownames(lambda.out) <- rownames(object$draws)
  colnames(lambda.out) <- columns

  for(i in columns){
    lambda.out[,i,] <-
      object$draws[,i,]/apply(object$draws[,columns,],c(1,3),sum)
  }

  if (ret.mcmc){
    lambda.out <- t(matrix(lambda.out,
                           nrow(lambda.out)*ncol(lambda.out),
                           dim(lambda.out)[3]))
    colnames(lambda.out) <- apply(expand.grid(rownames(object$draws),
                                              columns)[,1:2], 1,
                                  paste, collapse=".") 
    lambda.out <- coda::mcmc(lambda.out)
  }
  
  class(lambda.out) <- c("lambdaRegBayes", class(lambda.out))
  lambda.out
}