我有四个地块列表(每个列表有 8 个地块),其中这些列表已被编译为一个列表。 所以,基本上; 4 个列表的列表,其中每个子列表有 8 个图。
现在,我需要 8 个列表作为结果;其中 4 个列表中每个列表的第一个元素作为单独的列表生成。
任何人都可以帮助我如何使用“lapply”或“for loop”来获得所需的结果?
我尝试了以下块,但没有输出 [ABC -> "NULL"].
PlotsA <- list(Plot1.png, Plot2.png,..., Plot8.png)
PlotsB <- list(Plot9.png, Plot10.png,..., Plot16.png)
PlotsC <- list(Plot17.png, Plot18.png,..., Plot24.png)
PlotsD <- list(Plot25.png, Plot26.png,..., Plot32.png)
All_Plots <- list(PlotsA, PlotsB, PlotsC, PlotsD)
ABC <- for (i in seq_along(All_Plots)){
for (j in length(All_Plots[[i]])){
x = list(All_Plots[[i]][j])
x
}
}
ABC
我要的结果是...
Outcome1
[1]
Plot1.png, Plot9.png, Plot17.png, Plot25.png
Outcome2
[2]
Plot2.png, Plot10.png, Plot18.png, Plot26.png
...
等等。
进一步处理包括 4 个图的网格(例如,Plot1.png、Plot9.png、Plot17.png 和 Plot25.png)。一旦我得到上述结果,我就可以做到这一点。
使用
purrr::transpose()
。 (出于演示目的,我使用字符串作为替代品,但与实际情节一样有效。)
library(purrr)
transpose(All_Plots)
[[1]]
[[1]][[1]]
[1] "Plot1.png"
[[1]][[2]]
[1] "Plot9.png"
[[1]][[3]]
[1] "Plot17.png"
[[1]][[4]]
[1] "Plot25.png"
[[2]]
[[2]][[1]]
[1] "Plot2.png"
[[2]][[2]]
[1] "Plot10.png"
[[2]][[3]]
[1] "Plot18.png"
[[2]][[4]]
[1] "Plot26.png"
# ...
[[8]]
[[8]][[1]]
[1] "Plot8.png"
[[8]][[2]]
[1] "Plot16.png"
[[8]][[3]]
[1] "Plot24.png"
[[8]][[4]]
[1] "Plot32.png"