R:一次调用生成多个数字序列

R: generate many number sequences in one call

我有 2 个整数值向量。

> starts = 1:10
> ends = seq(1,100,10)
> ends
 [1]  1 11 21 31 41 51 61 71 81 91

我想生成从头到尾的数字序列,以便有 10 个序列,从 1 到 1、2 到 11、3 到 21 等等

我可以使用 for() 循环轻松完成,因为我认为会有更优雅、更快速的方法。 do.call() 似乎没有这样做,因为它抱怨:

> x = do.call(seq,list(from=starts,to=ends,by=1))
Error in seq.default(from = 1:10, to = c(1, 11, 21, 31, 41, 51, 61, 71,  : 
  'from' must be of length 1

执行此操作的最佳方法是什么?

你可以试试Map

 Map(`:`, starts, ends)

会在list.

中为'starts'、'ends'对应的元素生成序列

或者我们可以使用 seq(正如@MrFlick 提到的)

,而不是 :
 Map(seq, starts, ends)