重新列出一个 data.frame 对象并按顺序将其追加到现有列表中

relist a data.frame object & append it in existing list by order

我有一组 data.frame 个对象和一个 data.frame 个对象。我试图按顺序将它们放在列表中。我尝试 unlist 进行这种操作,但最后不会产生正确的输出。任何人都可以给我可能的想法吗?非常感谢

模拟数据:

bleh <- data.frame(
  start=seq(1, by=9, len=18), end=seq(6, by=9, len=18),
  ID=letters[seq(1:18)], score=sample(1:25, 18, replace = FALSE))

d.list <- list(
  foo <- data.frame(
    start=seq(2, by=11, len=20), end=seq(8, by=11, len=20),
    ID=letters[seq(1:20)], score=sample(1:25, 20, replace = FALSE)),
  bar <- data.frame(
    start=seq(4, by=11, len=25), end=seq(9, by=11, len=25),
    ID=letters[seq(1:25)], score=sample(1:25, 25, replace = FALSE))
)

期望的输出:

out <- list(blesh, d.list[1], d.list[2])

如果我将 d.list 展平并重塑列表中的所有对象,这在概念上是不正确的,因为 unlist 方法会将 d.list 展平为一个对象,这就是我阻止这种事情发生的原因。有谁知道进行这种操作的技巧吗?

将单个数据框对象包装成列表后,您可以使用concatenation方法cc 应用于列表时,会在第一级展开列表,然后将子列表连接在一起,这应该可以满足您的需求。

out <- c(list(bleh), d.list)

lapply(out, head, 3)
# [[1]]
#   start end ID score
# 1     1   6  a    16
# 2    10  15  b    18
# 3    19  24  c     7

# [[2]]
#   start end ID score
# 1     2   8  a    23
# 2    13  19  b     1
# 3    24  30  c    16

# [[3]]
#   start end ID score
# 1     4   9  a    16
# 2    15  20  b     8
# 3    26  31  c    10