【问题标题】:A function that returns a dataset返回数据集的函数
【发布时间】:2011-03-25 10:46:57
【问题描述】:

我想创建一个函数,它采用数据集名称和包名称并将数据集作为 data.frame 返回。这是我的尝试

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

但是,此功能失败。问题似乎是,对 data() 的调用不查找 name 变量的值,而是查找“name”。

我已经知道如何通过 deparse(substitute(var)) 从一个变量到它的名字。但是我该如何走另一条路,从“var”到 var?

感谢任何提示!

【问题讨论】:

    标签: r dataframe dataset


    【解决方案1】:

    试试看

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

    【讨论】:

    • 如果您不想将数据集打印到控制台,请使用invisible 而不是return
    • 嗯,这确实有帮助。谢谢!我现在对 table() 也有类似的问题。假设我从生存中附加了 cgd 并且现在想要表(性,治疗),但再次只有字符串“性”和“治疗”。我怎样才能做到这一点? do.call("table", list("sex", "treat")) 失败...
    • 试试这个:return(do.call("table", list(eval(parse(text=var1)), eval(parse(text=var2))))))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    相关资源
    最近更新 更多