【发布时间】:2016-10-11 19:45:40
【问题描述】:
我在列表中有 data.frame 对象,这是我实现的函数的输出。但是,我打算创建一个新列表,将不同列表中的 data.frame 对象放在一起。我尝试了几种方法来获得预期的输出,但并不优雅。有谁知道有效地进行这种操作的任何有用技巧?是否有任何优雅的解决方案来完成这项任务?有什么想法吗?
这是一个小例子:
savedList <- list(
foo_saved = data.frame(v1=c(1,6,16), v2=c(4,12,23)),
bar_saved = data.frame(v1=c(7,19,31), v2=c(16,28,41)),
cat_saved = data.frame(v1=c(5,13,26), v2=c(11,21,42))
)
dropedList <- list(
foo_droped = data.frame(v1=c(4,9,20), v2=c(7,15,29)),
bar_droped = data.frame(v1=c(14,26,35), v2=c(21,30,47)),
cat_droped = data.frame(v1=c(18,29,39), v2=c(25,36,48))
)
这是我的预期输出:
foo <- list(
foo_saved = data.frame(v1=c(1,6,16), v2=c(4,12,23)),
foo_droped = data.frame(v1=c(4,9,20), v2=c(7,15,29))
)
bar <- list(
bar_saved = data.frame(v1=c(7,19,31), v2=c(16,28,41)),
bar_droped = data.frame(v1=c(14,26,35), v2=c(21,30,47))
)
cat <- list(
cat_saved = data.frame(v1=c(5,13,26), v2=c(11,21,42)),
cat_droped = data.frame(v1=c(18,29,39), v2=c(25,36,48))
)
我尝试了一些现有的解决方案,但我对此并不满意。如何轻松获得所需的输出?是否有任何有效、兼容的解决方案?非常感谢
【问题讨论】:
-
purrr::transpose(list(saved=savedList, droped=dropedList))可能是一个选项。 -
@lukeA:谢谢,这个也很好用。