2017-04-07 108 views
0

如何在列表的每个元素上执行相同的函数(这里是:load.image)?lapply列表中的每个元素

出发点是两个列表名单:

list1 <- list(c("Group1", "Group2", "Group3")) 
list2 <- list(c("GroupA", "GroupB", "GroupC")) 
list.all <- c(list1,list2) 

我写了这个功能适用lapply迭代:

images.list.function <- lapply(
     designs.path.list, 
     FUN = function(secondlevel.list) 
     lapply(secondlevel.list, function(x) load.image(x)) 
    ) 
    # read all jpgs into a list 
    images.list <- images.list.function 
    images.list 

这正常工作,但我想要的格式是独立于因为未来可能会增加第三层或第四层。

任何优雅的想法?

回答

0

这个有用吗?

flatList = unlist(list.all) 
[1] "Group1" "Group2" "Group3" "GroupA" "GroupB" "GroupC" 

使用unlist你会得到一个向量。然后使用lapply与您的图像加载功能。

例如,使用paste函数添加"-image"到每一个名字:

d = lapply(flatList, function(x){paste(x, "-image", sep = "")}) 
> d 
[[1]] 
[1] "Group1-image" 

[[2]] 
[1] "Group2-image" 

[[3]] 
[1] "Group3-image" 

[[4]] 
[1] "GroupA-image" 

[[5]] 
[1] "GroupB-image" 

[[6]] 
[1] "GroupC-image" 
相关问题