【发布时间】:2017-06-10 21:26:53
【问题描述】:
我有两个需求,都连接到类似于下面可重现的数据集。我有一个包含 18 个实体的列表,每个实体都由 17-19 个 data.frames 的列表组成。以下是可重现的数据集(有矩阵而不是 data.frames,但我认为这不会产生影响):
test <- list(list(matrix(10:(50-1), ncol = 10), matrix(60:(100-1), ncol = 10), matrix(110:(150-1), ncol = 10)),
list(matrix(200:(500-1), ncol = 10), matrix(600:(1000-1), ncol = 10), matrix(1100:(1500-1), ncol = 10)))
- 我需要将每个数据帧/矩阵分成两部分(按给定的行数)并保存到新的列表列表中
- 其次,我需要从列表列表中的每个
data.frame中提取并保存给定的列。
除了for(),我不知道如何去做,但我相信apply() 系列函数应该是可能的。
感谢您的阅读
编辑:
我的预期输出如下所示:
extractedColumns <- list(list(matrix(10:(50-1), ncol = 10)[, 2], matrix(60:(100-1), ncol = 10)[, 2], matrix(110:(150-1), ncol = 10)[, 2]),
list(matrix(200:(500-1), ncol = 10)[, 2], matrix(600:(1000-1), ncol = 10)[, 2], matrix(1100:(1500-1), ncol = 10)[, 2]))
numToSubset <- 3
substetFrames <- list(list(list(matrix(10:(50-1), ncol = 10)["first length - numToSubset rows", ], matrix(10:(50-1), ncol = 10)["last numToSubset rows", ]),
list(matrix(60:(100-1), ncol = 10)["first length - numToSubset rows", ], matrix(60:(100-1), ncol = 10)["last numToSubset rows", ]),
list(matrix(110:(150-1), ncol = 10)["first length - numToSubset rows", ], matrix(110:(150-1), ncol = 10)["last numToSubset rows", ])),
etc...)
它看起来很乱,希望你能按照我想要的。
【问题讨论】:
-
lapply()的用法看起来很简单,可能是嵌套的。你能用你想要的输出更新帖子吗? -
谢谢。编辑了我的问题
-
所需的输出不是清晰的,也不是完全可运行的代码,而是伪代码。 extractedColumns 或 substetFrames 是哪一个?在 #2 中,您说提取给定列,但您尝试为
substetFrames提取行,即使在伪代码中使用 rows 一词? -
@Parfait:感谢您的回复。实际上我认为这很清楚,请让我知道您认为不清楚的地方。我想要两个输出(2 个问题)-subsetFrames 是给定行的 2 个帧子集的列表,extractColumn 是从原始数据帧中提取的列的列表。它对应于我的两个问题(尽管顺序相反,如果这让你感到困惑)