当前位置:  开发笔记 > 编程语言 > 正文

使用交替步骤在R中获取seq()

如何解决《使用交替步骤在R中获取seq()》经验,为你挑选了1个好方法。

seqR中的功能会给我一个序列来自xy一个恒定的一步m:

seq(x, y, m)

例如seq(1,9,2) = c(1,3,5,7,9).

什么是最优雅的方式从中获取的顺序x,以y交替的步骤m1m2,这样类似"seq(x, y, c(m1, m2))"会给我c(x, x + m1, (x + m1) + m2, (x + m1 + m2) + m1, ..., y),每次加的步骤之一(不一定达到最高y,当然,如seq)?

例子:x = 1; y = 19; m1 = 2; m2 = 4我明白了c(1,3,7,9,13,15,19).



1> raymkchow..:

我通过以下方式得出了解决方案:1.使用cumsum向量c(from,rep(by,times),...),by重复times = ceiling((to-from)/sum(by))次数.2.按顺序截断序列!(seq > to).

 seq_alt <- function(from, to, by) {
   seq <- cumsum(c(from,rep(by,ceiling((to-from)/sum(by)))))
   return(seq[! seq > to])
 }

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有