展平深度嵌套的数据框列表

Maë*_*aël 5 r list nested-lists dataframe

考虑这个数据帧的嵌套列表:

df <- data.frame(x = 1:5, y = letters[1:5])
l <- list(df, list(df, df), list(df, list(df, df, list(df))), list(df), df)
Run Code Online (Sandbox Code Playgroud)

如何从这个深度嵌套的列表得到一个简单的数据帧列表:

list(df, df, df, df, df, df, df, df, df)
Run Code Online (Sandbox Code Playgroud)

通常的解决方案(如此)无法保留数据帧的结构。

tmf*_*mnk 6

一个方便的选择是使用rrapply

rrapply::rrapply(l, classes = "data.frame", how = "flatten")
Run Code Online (Sandbox Code Playgroud)

检查它是否与所需的输出相同:

identical(list(df, df, df, df, df, df, df, df, df), 
          rrapply(l, classes = "data.frame", how = "flatten"))

[1] TRUE
Run Code Online (Sandbox Code Playgroud)

  • 我不知道 rrapply 的类参数,谢谢! (2认同)