在向量值之间生成一系列数字

Jda*_*dan 5 r vector sequence

我有一个数字向量

x <- c(2,5,1,6)
Run Code Online (Sandbox Code Playgroud)

我正在尝试生成一系列值 - 从1开始 - 介于值和包含值之间,x以便我留下以下字符串

1,2,3,4,5,4,3,2,1,2,3,4,5,6
Run Code Online (Sandbox Code Playgroud)

我试图找到执行此任务所需的功能(例如seq,order,arrange)但是我似乎无法找到我需要做的事情.

Fra*_*ank 16

假设隐含的初始值为1,这似乎有效:

res <- Reduce(function(y, z) c(head(y,-1), tail(y,1):z), x, init=1L)
# 1 2 3 4 5 4 3 2 1 2 3 4 5 6
Run Code Online (Sandbox Code Playgroud)

如果你必须把它作为逗号字符串:paste(res, collapse=",").


对于一个大问题,这将变得非常低效,因为我正在循环中增长一个对象.我建议那个案例的Rcpp包,或者更仔细地计算数学.