如何使用列表在R中形成数据框

时间:2018-06-22 15:42:44

标签: r

我在R中有child_sequences作为list

child = c("a","b","c")

我使用for循环根据某种逻辑一次又一次地生成此子序列,可以说-

child1 = c("a","b","c")
child2 = c("b","a","c")
child3 = c("a","a","b")

以此类推。

我希望所有这些列表都存储为数据框,以便我可以将其保存到csv并在以后进行分析。

如何在R中有效地做到这一点?如何使用相同的for循环将此列表附加到数据框?

我的数据框应该看起来像-

a , b ,c 
b, a, c
a, a, b

2 个答案:

答案 0 :(得分:2)

怎么样:

child1 = c("a","b","c")
child2 = c("b","a","c")
child3 = c("a","a","b")

child_list <- list(child1, child2, child3)

as.data.frame(do.call(rbind, child_list))
  V1 V2 V3
1  a  b  c
2  b  a  c
3  a  a  b

答案 1 :(得分:0)

如果有许多具有相同模式名称的对象,我们可以使用ls(指定pattern并用mget返回list中的对象值。 ,是bind_rows(来自dplyr)的另一种选择

library(dplyr)
bind_cols(mget(ls(pattern = "^child\\d+$")))
# A tibble: 3 x 3
#  child1 child2 child3
#  <chr>  <chr>  <chr> 
#1 a      b      a     
#2 b      a      a     
#3 c      c      b