R:在一次调用中生成许多数字序列

时间:2015-08-10 14:00:02

标签: r do.call

我有2个整数值向量。

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

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

我可以轻松地使用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

最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以尝试Map

 Map(`:`, starts, ends)

它将为list中的“开始”,“结束”的相应元素生成序列。

或者代替:,我们可以使用seq(提及@MrFlick)

 Map(seq, starts, ends)