2017-04-07 131 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" 
相關問題