如何在 R 中连续连接整数向量

Adr*_*ian 3 r vector

vec <- c(1, 3, 2, 37)
Run Code Online (Sandbox Code Playgroud)

我想连续连接这个向量,使得输出看起来像这样:

> output
[[1]]
[1] 1

[[2]]
[1] 1 3

[[3]]
[1] 1 3 2

[[4]]
[1] 1 3 2 37
Run Code Online (Sandbox Code Playgroud)

我编写了一个函数来执行此操作,但它没有给我正确的输出:

myfun <- function(vec){
  output = vector("list", length(vec))
  output[[1]] = vec[1]
  for(i in 2:length(vec)){
    output[[i]] = paste(output[[i - 1]], vec[i])
    output[[i]] = as.numeric(strsplit(output[[i]], " ")[[1]])
  }
  return(output)
}
> myfun(c(1, 3, 2, 37))
[[1]]
[1] 1

[[2]]
[1] 1 3

[[3]]
[1] 1 2

[[4]]
[1]  1 37
Run Code Online (Sandbox Code Playgroud)

jor*_*ran 5

执行此操作的直接方法是Reduce

Reduce(f = c,x = vec,accumulate = TRUE)
Run Code Online (Sandbox Code Playgroud)

有一个purrr::accumulate函数可以完成同样的事情:

purrr::accumulate(.x = vec,.f = c,.simplify = FALSE)
Run Code Online (Sandbox Code Playgroud)

(编辑以合并注释以用作c()函数,简单得多。)