Search code examples
rlistvectortriangular

R: Create list from vector in "triangular" form


I found it hard to formulate the question but I would like to find a clever way (not using loop) to get the following result:

> my.vector = letters[1:6]
> print(my.vector)
[1] "a" "b" "c" "d" "e" "f"
> 
> my.list = (rep(list(NA),6))
> for (i in 1:length(my.vector)){
+   x = my.vector[1:i]
+   my.list[[i]] = x
+ }
> print(my.list)
[[1]]
[1] "a"

[[2]]
[1] "a" "b"

[[3]]
[1] "a" "b" "c"

[[4]]
[1] "a" "b" "c" "d"

[[5]]
[1] "a" "b" "c" "d" "e"

[[6]]
[1] "a" "b" "c" "d" "e" "f"

Thanks in advance,

Gabriel.


Solution

  • You can do:

    lapply(seq_along(my.vector), head, x = my.vector)