重新列出一个 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
方法c
。 c
应用于列表时,会在第一级展开列表,然后将子列表连接在一起,这应该可以满足您的需求。
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
我有一组 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
方法c
。 c
应用于列表时,会在第一级展开列表,然后将子列表连接在一起,这应该可以满足您的需求。
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