嗨我正在尝试在向量中添加值,因为R中的值为零.我有一个这样的向量:
wdnew
[1] 1 0 0 1 1 0 0 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)
我想创建一个新的向量来计算自零值以来的迭代次数或位数.如果我做得恰到好处,我会得到一个这样的矢量:
wdseq
[1] 1 0 0 1 2 0 0 1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)
这应该是直截了当但我无法弄清楚如何生成序列,任何建议?谢谢,
一种选择是用于rleid创建组变量并按cumsum组进行:
wdnew <- c(1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1)
ave(wdnew, data.table::rleid(wdnew != 0), FUN=cumsum)
# [1] 1 0 0 1 2 0 0 1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)