gpt4 book ai didi

r - 从 R 中的零开始按顺序添加值

转载 作者:行者123 更新时间:2023-12-04 10:30:17 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Cumulative sum that resets when 0 is encountered

(4 个回答)


5年前关闭。




嗨,我正在尝试将向量中的值相加,因为 R 中的值为零。
我有一个这样的向量:

wdnew
[1] 1 0 0 1 1 0 0 1 1 1 1 1

我想创建一个新的向量,它计算自零值以来的迭代次数或位置。如果我正确地做到了这一点,我会得到一个这样的向量:
wdseq
[1] 1 0 0 1 2 0 0 1 2 3 4 5

这应该很简单,但我不知道如何生成序列,有什么建议吗?
谢谢,

最佳答案

一种选择是使用 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

关于r - 从 R 中的零开始按顺序添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39048544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com