【问题标题】:How to call a data.frame inside an R Function by name如何按名称在 R 函数中调用 data.frame
【发布时间】:2015-09-02 10:27:13
【问题描述】:

我想编写一个函数,在不同的 data.frames 上运行相同的分析。这是我的代码的简单版本:

set1 <- data.frame(x=c(1,2,4,6,2), y=c(4,6,3,56,4))
set2 <- data.frame(x=c(3,2,3,8,2), y=c(2,6,3,6,3))

mydata <- c("set1", "set2")

for (dataCount in 1:length(data)) {

      lm(x~y, data=mydata)
}

如何在函数中按名称调用 data.frame?现在“数据”显然只返回“mydata”的名称作为一个字符。

【问题讨论】:

    标签: r function dataframe call


    【解决方案1】:

    有很多方法可以做到这一点。你的“原生”方式是

    mydata <- ls(pattern = "set")
    
    for (dataCount in mydata) {
      print(summary(lm(x~y, data=get(dataCount))))
    }
    

    或者您可以将您的 data.frames 整理成一个列表并进行处理。

    mylist <- list(set1, set2)
    
    lapply(mylist, FUN = function(yourdata) {
      print(summary(lm(x ~ y, data = yourdata)))
    })
    

    【讨论】:

      最近更新 更多