2015-06-17 88 views
2

我想編寫一個函數,在不同的data.frames上運行相同的分析。以下是我的代碼的簡單版本:如何通過名稱調用R函數中的data.frame

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」作爲字符的名字。

回答

3

有很多方法可以做到這一點。你的「本地」方式是

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))) 
}) 
相關問題