2017-08-15 114 views
0

我有以下数据帧列表。我想将它们组合在一起,并把结果存储在数据表R数据表:如何将数据帧列表合并为单个数据表

A <- data.frame(A=1:3) 
B <- data.frame(B=4:6) 
AB_List <- list(A,B) 

一个实现这一目标的途径之一是

AB_df <- data.table(do.call("cbind", AB_List)) 

是否有任何其他方法直接获得的结果,没有它包装明确

+3

'data.table(A,B)'或'as.data.table(AB_List)'。 – djhurio

+0

你打败了我,@djhurio。你应该把它作为答案。 –

+0

@djhurio:我有50个这样的数据框的列表。我应该在循环中运行它吗? –

回答

3

如果您有一个列表中的数据帧,as.data.table将工作。看例子。

require(data.table) 

AB_list <- lapply(seq(LETTERS), function(i) { 
    df <- data.frame(A = (3*i-2):(3*i)) 
    names(df) <- LETTERS[i] 
    df 
}) 

as.data.table(AB_list) 

要获得使用ls()和论证patterngrep()数据帧的列表,你需要得到的数据帧的名字的载体。之后,您可以创建数据框的列表。

df_names <- LETTERS 
df_list <- mget(df_names)