R/getDataFrame.R

Defines functions getDataFrame

Documented in getDataFrame

#' Finds and returns data frame
#'
#' @return
#' @export
#'
#'
getDataFrame <- function(data) {

  again <- TRUE

  if(hasArg(data)) {
    return <- data
    again <- FALSE
  }

  while(again) {

    again <- FALSE

    found <- FALSE

    object <- objects(pos = .GlobalEnv)[unlist(lapply(objects(pos = .GlobalEnv), FUN = function(x) {!is.function(eval(parse(text = x)))}))]

    if(length(object) <= 1) {
      stop("There's literally nothing.")
    }


    while(!found) {

      #Initial list of objects
      if(length(object) > 1) {
        x <- 0
        while(!x %in% 1:length(object)) {
          entries <- object
          names(entries) <- 1:length(entries)
          print(entries)
          x <- as.numeric(readline("Choose an object by number: "))
        }
        object <- object[x]
      }

      #Investigating object
      else if(length(object) == 1) {

        #If list
        if(class(eval(parse(text = object)))[1] == "list") {

          if(length(eval(parse(text = object))) > 0) {

            message("")
            message("List entries: ")
            entries <- names(eval(parse(text = object)))
            names(entries) <- 1:length(entries)
            print(entries)

            x <- 0
            while(!x %in% 1:length(eval(parse(text = object)))) {
              x <- as.numeric(readline("Choose list entry by number: "))
            }

            object <- paste(object, "[[", x, "]]", sep = "")

          }

          else {
            message("There's nothing here. Try again!")
            found <- TRUE
            again <- TRUE
            message("")
          }


        }

        #If dataframe/matrix
        else if(class(eval(parse(text = object))) == "data.frame" || class(eval(parse(text = object))) == "matrix") {

          message("Success.")

          return <- eval(parse(text = object))

          found <- TRUE
        }


        #Unknown
        else {
          message("Unknown object. Try again!")
          found <- TRUE
          again <- TRUE
          message("")
        }



      }

      #Wtf
      else {
        message("I don't know how you got here. Try again!")
        found <- TRUE
        again <- TRUE
        message("")
      }

    }


  }

  return

}
nicohuttmann/htmnanalysis documentation built on Dec. 6, 2020, 3:02 a.m.