发出长列表-短列表但保留结构

问题描述

如果我们想对SO的复杂/大型数据集提出可重复的问题,可以使用dput(head(df))来减小大小。

是否存在类似的方法来减少具有不同列表长度的复杂嵌套列表的大小?我在想一种方法可能是从每个列表中获取前几个元素(例如前3个),而与单个列表类型(numericcharacter等)和嵌套结构无关,但我不是确定该怎么做。

#sample nested list
L <- list(
  list(1:10),list( list(1:10),list(1:10,1:10) ),list(list(list(list(1:10))))
)

运行dput(L)自然会为整个列表生成结构。有没有一种简单的方法可以减少此列表的总长度(类似于dput(head(L))

我不想编辑列表的结构,例如我不想首先flatten或其他任何东西-我只想减小它的大小并保留所有属性等。

谢谢

修改

@thelatemail解决方案效果很好:

rapply(L,f = head,n = 3,how = "list")

如果我们在列表中有data.frame怎么办,该方法将df拆分为单独的列表(我认为这是可以预期的,因为{{ 1}}电话)?。有没有一种方法可以修改它,使其返回list作为rapplyhead(df)包括:

data.frame

编辑2

似乎df无法在L_with_df <- list( list(1:10),1:10),df = data.frame(a = 1:20,b = 21:40) ),list(list(list(list(1:10)))) ) rapply(L_with_df,how = "list") 上运行,请参阅here

但是,rapply的扩展名data.frames here似乎可以满足我的要求:

rrapply

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)