我正在尝试使用tohave
变量来重新创建helpers
列表。
知道我不知道辅助变量的长度。
# The list I want to create
tohave <- list(
list(var1 = "A", var2 = 1),
list(var1 = "B", var2 = 2),
list(var1 = "C", var2 = 3),
list(var1 = "D", var2 = 4),
list(var1 = "E", var2 = 5),
list(var1 = "F", var2 = 6),
list(var1 = "G", var2 = 7),
list(var1 = "H", var2 = 8),
list(var1 = "I", var2 = 9),
list(var1 = "J", var2 = 10)
)
# 'Helpers' variables I want to use to recreate tohave
helper1 <- list(
list(var1 = "B", var2 = 2),
list(var1 = "C", var2 = 3)
)
helper2 <- list(
list(var1 = "H", var2 = 8),
list(var1 = "I", var2 = 9)
)
tohave2 <- list(
list(var1 = "A", var2 = 1),
helper1,
list(var1 = "D", var2 = 4),
list(var1 = "E", var2 = 5),
list(var1 = "F", var2 = 6),
list(var1 = "G", var2 = 7),
helper2,
list(var1 = "J", var2 = 10)
)
最后,我需要完全重新创建tohave
变量
答案 0 :(得分:2)
您可以将其他列表包装到列表中,以便它们与助手的形式匹配,然后使用?c
。
tohave2 <- c(
list(list(var1 = "A", var2 = 1)),
helper1,
list(
list(var1 = "D", var2 = 4),
list(var1 = "E", var2 = 5),
list(var1 = "F", var2 = 6),
list(var1 = "G", var2 = 7)
),
helper2,
list(list(var1 = "J", var2 = 10))
)
identical(tohave, tohave2)
#[1] TRUE
答案 1 :(得分:2)
使用append
tohave2 <- append(x = tohave2, values = helper1, after = 1)
tohave2 <- append(x = tohave2, values = helper2, after = 7)
identical(tohave, tohave2)
#[1] TRUE
数据
tohave <- list(
list(var1 = "A", var2 = 1),
list(var1 = "B", var2 = 2),
list(var1 = "C", var2 = 3),
list(var1 = "D", var2 = 4),
list(var1 = "E", var2 = 5),
list(var1 = "F", var2 = 6),
list(var1 = "G", var2 = 7),
list(var1 = "H", var2 = 8),
list(var1 = "I", var2 = 9),
list(var1 = "J", var2 = 10)
)
# 'Helpers' variables I want to use to recreate tohave
helper1 <- list(
list(var1 = "B", var2 = 2),
list(var1 = "C", var2 = 3)
)
helper2 <- list(
list(var1 = "H", var2 = 8),
list(var1 = "I", var2 = 9)
)
tohave2 <- list(
list(var1 = "A", var2 = 1),
# helper1,
list(var1 = "D", var2 = 4),
list(var1 = "E", var2 = 5),
list(var1 = "F", var2 = 6),
list(var1 = "G", var2 = 7),
# helper2,
list(var1 = "J", var2 = 10)
)