【问题标题】:R: generate many number sequences in one call [duplicate]R:一次调用生成许多数字序列[重复]
【发布时间】:2015-08-10 14:00:02
【问题描述】:

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

最好的方法是什么?

【问题讨论】:

    标签: r do.call


    【解决方案1】:

    你可以试试Map

     Map(`:`, starts, ends)
    

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

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

     Map(seq, starts, ends)
    

    【讨论】:

    • 或等价于Map(seq, starts, ends)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 2022-11-27
    • 2015-09-23
    相关资源
    最近更新 更多