2

我有 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

最好的方法是什么?

4

1 回答 1

2

你可以试试Map

 Map(`:`, starts, ends)

它将为 a 中的 'starts'、'ends' 的相应元素生成序列list

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

 Map(seq, starts, ends)
于 2015-08-10T14:01:23.183 回答