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)
我有 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
.
或者我们可以使用 seq
(正如@MrFlick 提到的)
:
Map(seq, starts, ends)