【问题标题】:How to rbind multiple data frames individually in R?如何在 R 中单独绑定多个数据帧?
【发布时间】:2019-05-23 03:57:20
【问题描述】:

有一个数据框(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`) …

我除了在循环上工作。

【问题讨论】:

  • 我认为mapply(rbind, mylist, single_data) 也应该可以。

标签: r


【解决方案1】:

我们可以使用lapply 来循环listrbind 与每个list 元素的“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]]) 
 }

【讨论】:

  • 效果很好,谢谢
猜你喜欢
  • 1970-01-01
  • 2021-04-28
  • 1970-01-01
  • 1970-01-01
  • 2020-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多