如何按名称调用R函数内的data.frame

时间:2015-06-17 09:18:28

标签: r function dataframe call

我想编写一个在不同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”的名字作为一个字符。

1 个答案:

答案 0 :(得分:3)

有很多方法可以做到这一点。你的本地人#34;方式将是

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)))
})