2016-02-14 32 views
9

我在我的工作環境中有超過50個data.frames,我想rbind。有沒有辦法rbinddata.frames無需輸出每個date.frame?我一直在做如何對工作環境中的所有數據框架進行綁定?

例子:

df <- rbind(A, B, C, D, E, F) 

我曾嘗試:

df <- rbind(ls()) 

但是,這僅僅是創建在我的工作環境中的所有data.frames的名稱的列表。

回答

12

您可以搜索data.frame類的對象,並使用函數mget來檢索它們。

a = b = c = data.frame(x=1:2, y=3, z=1:4) 
d = "junk" 
e = list(poo="pah") 
ls() 
# [1] "a" "b" "c" "d" "e" 
dfs = sapply(.GlobalEnv, is.data.frame) 
dfs 
# a  b  c  d  e 
# TRUE TRUE TRUE FALSE FALSE 
do.call(rbind, mget(names(dfs)[dfs])) 
#  x y z 
# a.1 1 3 1 
# a.2 2 3 2 
# a.3 1 3 3 
# a.4 2 3 4 
# b.1 1 3 1 
# b.2 2 3 2 
# b.3 1 3 3 
# b.4 2 3 4 
# c.1 1 3 1 
# c.2 2 3 2 
# c.3 1 3 3 
# c.4 2 3 4 
+0

我和你在一起,直到最後的'do.call'部分,然後我得到一個錯誤信息'錯誤:找不到'x1'的值'。有什麼建議麼? –

+0

@DavidPell;道歉,我沒有在現場。很難說發生了什麼事。你能否創建一個與我在答案中所做的相似的例子來展示你的問題。 – user2957945

相關問題