我有一个向量,其中包含 1 到 5 个重复值,然后是另一个这样的集合,该集合通常但不总是增加 1。例如,
c(1,1,1,1,1, 2,2,2,2, 3,3, 4,4,4,4,4)
我想以这样的方式进行操作,即仅在重复给定时才为每个值添加 0.2 的增量
c(1,1.2,1.4,1.6,1.8, 2,2.2,2.4,2.6, 3,3.2, 4,4.2,4.4,4.6,4.8)
我可以通过使用 for 循环很容易地做到这一点,但我的初始向量超过 100 万个条目,这需要很长时间。我一直试图想出一种基于列表的方法来做到这一点而没有运气。任何建议,将不胜感激。
最佳答案
这是一种使用 rle
的方法和序列以创建序列 0,0.2,0.4,....
这将添加到原始文件中。
x <- c(1,1,1,1,1, 2,2,2,2, 3,3, 4,4,4,4,4)
x + (sequence(rle(x)$lengths)-1)*0.2
关于r - R中的部分向量加法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19042473/