次のリスト(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
as.data.frame
あなたのために平らになります。差出人?as.data.frame
:
3次元以上の配列は、最初の次元の後のすべての次元を「フラット化」し、適切な列ラベルを作成することによって行列に変換されます。
これは、配列だけでなく、ネストされたリストでも機能することを説明するのに不十分です。(言い換えれば、ドキュメントでは非アレイでのこの機能については説明されていないと思います。)
str(as.data.frame(result))
# 'data.frame': 1 obs. of 6 variables:
# $ 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
が必要ない/必要ない場合はlist
、as.list
次にそれを実行します。
str(as.list(as.data.frame(result)))
# 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
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加