假设这个简化的例子:
L <- list()
L$Foo <- list()
L$Foo$Bar <- list()
L$Foo$Bar$VAR <- TRUE
L$Lorem <- list()
L$Lorem$Ipsum <- list()
L$Lorem$Ipsum$Dolor <- list()
L$Lorem$Ipsum$Dolor$VAR <- TRUE
然后我将使用 reshape2::melt(L)
融化此列表。这将输出以下内容:
value L3 L2 L4 L1
1 TRUE VAR Bar <NA> Foo
2 TRUE Dolor Ipsum VAR Lorem
对值列中的某些单元格进行一些操作后,我希望将这个熔化列表重新转换为与 L
完全相同的嵌套列表结构 - 唯一的区别是我更新了一些value
实例的数量。
有什么想法可以实现这一目标吗?请记住,嵌套列表可以具有任意且不同的深度。
最佳答案
在我们取消列出
L
之后,一个选项是重新列出
tmp <- unlist(L)
# make small changes
tmp[] <- FALSE
relist(tmp, L)
结果
$Foo
$Foo$Bar
$Foo$Bar$VAR
[1] FALSE
$Lorem
$Lorem$Ipsum
$Lorem$Ipsum$Dolor
$Lorem$Ipsum$Dolor$VAR
[1] FALSE
L
看起来像
$Foo
$Foo$Bar
$Foo$Bar$VAR
[1] TRUE
$Lorem
$Lorem$Ipsum
$Lorem$Ipsum$Dolor
$Lorem$Ipsum$Dolor$VAR
[1] TRUE
关于重铸任意深度的嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66250453/