Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

A function that returns a dataset

I want to create a function that takes a dataset name and a package name and returns the dataset as data.frame. Here is my try

loadDataSet <- function(name, pkg) {
      varname <- data(name, package=pkg)
      return(get(varname[[1]]))
    }
loadDataSet("acme", "boot")

However, this function fails. The problem seems to be, that the call to data() does not look up the value of the name variable, but rather "name".

I already know how to go from a variable to its name, via deparse(substitute(var)). But how do I go the other way, from "var" to var?

Any hint appreciated!

like image 523
Karsten W. Avatar asked Aug 04 '10 19:08

Karsten W.


1 Answers

Give this a try

loadDataSet <- function(name, pkg) {
      do.call("data", list(name,package=pkg))
      return(get(name))
    }

loadDataSet("acme", "boot")
like image 185
George Dontas Avatar answered Sep 23 '22 01:09

George Dontas