【发布时间】:2021-02-22 13:31:21
【问题描述】:
假设我有以下列表 (result),这是一个从模型中捕获信息的嵌套列表:参数 (betas) 及其标准错误 (sd),此外还有一些关于全局模型 (method) 和观察次数 (n)。
我想将betas 和sd 列表展平,同时区分x1 和x2 的每个值的来源(即它们来自betas 或sd)。
请仔细考虑以下示例:
result<- list(n = 100,
method = "tree",
betas = list(x1 = 1.47,
x2 = -2.85),
sd = list(x1 = 0.55,
x2 = 0.25))
str(result)
# List of 4
# $ n : num 100
# $ iterations: num 50
# $ betas :List of 2
# ..$ x1: num 1.47
# ..$ x2: num -2.85
# $ sd :List of 2
# ..$ x1: num 0.55
# ..$ x2: num 0.25
第一次尝试:flatten()。 [剧透(!):我失去了每个值的优先级]
## I can't distinguish between betas and sd.
flatten(result)
# $n
# [1] 100
#
# $iterations
# [1] 50
#
# $x1
# [1] 1.47
#
# $x2
# [1] -2.85
#
# $x1
# [1] 0.55
#
# $x2
# [1] 0.25
第二次尝试:unlist()。 [剧透(!),我需要一个列表,而不是原子向量]
#I need a list
unlist(result)
# n iterations betas.x1 betas.x2 sd.x1 sd.x2
# 100.00 50.00 1.47 -2.85 0.55 0.25
所需的输出。
list(n = 100,
method = "tree",
betas.x1 = 1.47,
betas.x2 = -2.85,
sd.x1 = 0.55,
sd.x2 = 0.25)
# List of 6
# $ n : num 100
# $ method : chr "tree"
# $ betas.x1: num 1.47
# $ betas.x2: num -2.85
# $ sd.x1 : num 0.55
# $ sd.x2 : num 0.25
【问题讨论】: