基于向量元素运行循环

时间:2016-12-23 16:30:31

标签: r loops merge

我必须根据某些矢量值运行循环。一些示例代码和数据如下所示:

list_store <- list()
vec <- c(3,2,3)
data_list <- lapply(list(head(mtcars,10), head(mtcars,15), head(mtcars,20), head(mtcars, 9),
                         head(mtcars,14), head(mtcars,18), head(mtcars,20), head(mtcars,10)),
                    function(x) rownames_to_column(x))
data_list1 <- lapply(list(head(mtcars,7), head(mtcars,8), head(mtcars,10)), function(x) rownames_to_column(x))
result <- lapply(data_list, function(i){
  list_store[[length(list_store) + 1]] <- merge(i, data_list1[[1]], all.y = TRUE)
})

上面的代码是我要将data_list的前三个文件与data_list1的第一个文件合并,将data_list的下两个文件与data_list1的第二个文件合并最后是data_list的其他三个文件,第三个文件是data_list1。在我的代码中,我将data_list的所有文件与data_list1的第一个文件合并,但我想根据data_list1更改vec

我可以有一个循环跟踪ij等等来完成所有过程,但我想知道是否有任何有效的方法。

1 个答案:

答案 0 :(得分:2)

我们通过'vec'序列replicate'vec',将split'data_list'用于3 list个元素,每个元素都有list。然后,使用Map传递list数据集和'data_list1'中的相应split元素,循环嵌套list lapply和{{1使用'data_list1'元素,使用merge将嵌套的c转换回'data_list'的正常list结构。

list