是否有一个选项允许我在how="melt"
选项中保留具有长度为0的列表的值的列表条目?在下面,我想保留B
和E
条目。
注意:@akrun给出了一个初始解决方案,当我在这里有一个更简单的reprex时(我在原始的E
处没有0长度的列表)。我最初接受了,意识到我需要一个更复杂的例子,并使用@akrun的解决方案作为我下面接受的解决方案的基础。
library(rrapply)
lst <- list(A=1, B=list(), C=list(D=letters[1:3], E=list()))
str(lst)
#> List of 3
#> $ A: num 1
#> $ B: list()
#> $ C:List of 2
#> ..$ D: chr [1:3] "a" "b" "c"
#> ..$ E: list()
# Melting it drops things that has 0-length lists, like B and E:
rrapply(lst, how="melt")
#> L1 L2 value
#> 1 A <NA> 1
#> 2 C D a, b, c
创建于2023-04-27带有reprex v2.0.2
2条答案
按热度按时间roqulrg31#
空列表元素可以递归地更改为NA,然后是
melt
xfb7svmp2#
答案,基于@akrun上面的解决方案。
创建于2023-04-27带有reprex v2.0.2