如何在R中分别绑定多个数据帧?

时间:2019-05-23 03:57:21

标签: r

有一个数据帧(df)和一个数据帧列表(df1,df2 ..), 我想用列表中的每个df来封装df并存储在新列表中。

50个数据帧列表

mylist # List of 50 elements

另一个基本数据帧

single_data

我创建了一个空列表

my_dfs = list()

我想将single_data绑定到列表中的每个数据帧

for (i in 1:length(mylist)){
  my_dfs[[i]] <- rbind(single_data, mylist$`i`) 
}

但是没有发生rbind,single_data有5000行,而mylist数据帧各有5000行,但是my_dfs [[i]]只有5000行。 如果我单独执行而不是循环运行,那么它就起作用了。

my_dfs1 <- rbind(single_data, mylist$`1`) 
my_dfs2 <- rbind(single_data, mylist$`2`) …

我除了循环工作。

1 个答案:

答案 0 :(得分:3)

我们可以使用lapply来遍历list元素的rbindlist与“ {single_data””

mylistnew <- lapply(mylist, function(x) rbind(single_data, x))

如果我们使用for循环,请使用[[而不是$。另外,最好使用seq_along而不是1:length

my_dfs <- vector('list', length(mylist))

for (i in seq_along(mylist)){
  my_dfs[[i]] <- rbind(single_data, mylist[[i]]) 
 }