r - R中的部分向量加法

标签 r

我有一个向量,其中包含 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/

相关文章:

r - 将 textGrob 转换为 imageGrob/rasterGrob?

r - 如何在 R 中使用 princomp() 或 prcomp() 函数处理大型数据集,而不转置数据?

r - 如何显示 NA 的索引?

r - 跳过行摆脱必要的 colnames?

r - 如何在 renderTable 中以正确的小数位数显示数字?

python - 在 Windows 10 上使用 pip install xx.whl 安装 rpy2

r - 使用 R dplyr 将整个数据帧转换为字符类

r - 如何在 R 中合并 2 个 json 对象?

R - 通过随机选择组成的数据帧来创建新的数据帧

r - 使用R从XTS对象中获取当月第一个工作日的 yield