R/connectToData.R

Defines functions connectToData

Documented in connectToData

#' Connect To Data
#'
#' When a trained forest is saved, the training dataset is not saved alongside
#' it. When it's loaded back up, it can be more convenient (and in some cases
#' necessary) to import the training dataset back into the Java environment so
#' that it's readily accessible. There are only two functions that look for the
#' training dataset: \code{predict}, where you can easily just specify an
#' alternative dataset, or \code{\link{addTrees}}, which requires the training
#' dataset be connected.
#' @param forest The forest to connect data too
#' @param responses The responses in the data; aka the left hand side of the formula
#' @param covariateData A data.frame containing all of the covariates used in the training dataset
#' @return The same forest, but connected to the training data.
#' @export
#' @examples 
#' data <- data.frame(x1=rnorm(1000), x2=rnorm(1000), y=rnorm(1000))
#' forest <- train(y~x1+x2, data, ntree=100, numberOfSplits=0, nodeSize=1, mtry=1)
#' forest$dataset <- NULL # what the forest looks like after being loaded
#' 
#' forest <- connectToData(forest, data$y, data)
connectToData <- function(forest, responses, covariateData){
  covariateList <- forest$covariateList
  
  numCovariates <- .jcall(covariateList, "I", "size")
  covariateNames <- character(numCovariates)
  
  for(j in 1:numCovariates){
    covariate <- .jcall(covariateList, makeResponse(.class_Object), "get", as.integer(j-1))
    covariate <- .jcast(covariate, .class_Covariate)
    covariateNames[j] <- .jcall(covariate, makeResponse(.class_String), "getName")
  }
  
  forest$dataset <- loadData(covariateData, covariateNames, responses, covariateList)$dataset

  return(forest)
  
}
jatherrien/largeRCRF documentation built on Nov. 15, 2019, 7:16 a.m.