提问人:Jade131621 提问时间:10/16/2023 更新时间:10/16/2023 访问量:37
如何在 R 中预分配和命名嵌套列表
How to preallocate and name nested lists in R
问:
我将运行模型,并希望将各个模型的输出保存到列表中,以便以后可以访问它们。每个单独的模型也将使用不同的参数集和模型类型运行,因此我想做的是预先分配一个命名嵌套列表来保存模型的输出。我希望列表的最外层是 ID,下一级是参数,最内层是模型类型。以 ID 为例:
IDs = c("ID1", "ID2", "ID3")
parameter_level = c("100", "200")
model_type = c("type1", "type2", "type3")
named_nested_list
$ID1
$100
$type1
NULL
$type2
NULL
$type3
NULL
$200
$type1
NULL
...
我能弄清楚如何做到这一点的唯一方法是创建内部列表,然后不断向其添加更多列表。喜欢
model_type_list = vector(mode = "list", length = length(model_type)
names(model_type_list) = model_type
parameter_level_list = list('100' = model_type_list, '200' = model_type_list)
named_nested_list = list("ID1" = parameter_level_list, "ID2" = parameter_level_list)
除了我有 30 个 ID 和 5 个参数。
另外,是否有另一种类型的数据结构可以更好地处理这个问题?该列表是我所知道的能够访问每个底层模型的全部内容,并且保持组件命名将有助于防止混淆我正在访问列表的哪一部分,谢谢。
我确实阅读了以下内容,但我要么不明白“表格查找”答案的含义(框中的 Marc)、(Sonia) 的答案,或者如何修改 (Adam Lee Perelman) 和 () 的答案,以允许我命名列表的各个组成部分。
我也在下面找到了这个问题,但这需要我重命名列表的每个部分。有没有办法更以编程方式命名它?
谢谢
答: 暂无答案
评论
list
model_data = expand.grid(IDs = c("ID1", "ID2", "ID3"), parameter_level = c("100", "200"), model_type = c("type1", "type2", "type3"))
mapply
purrr::map