我是 R 的新手。我不确定如何在 R 中执行以下功能。我可以在 excel 中执行此操作。但不能在 R 中做到这一点。有人可以帮助我吗?

一旦达到 64,我想获得计数器值的累积总和,

以下是我的数据,

x
57
57
57
57
57
57
58
58
58
58
61
61
62
62
1
1
11
16
16
16
16
16
16
22
22
22
27
28

我想要计数达到 64 后的累积总和。我不知道如何在 R 中做到这一点。

以下是我需要的输出,
x
57
57
57
57
57
57
58
58
58
58
61
61
62
62
65
65
76
81
81
81
81
81
81
87
87
87
92
93

有人可以帮忙做这件事吗?
                                                                                          Thanks

最佳答案

如果您的数据在 64 位重置并继续,并且您希望它保持 64 位,请尝试:

diffs <- c(dat$x[1], diff(dat$x))
diffs[diffs < 0] <- 64 + diffs[diffs < 0]
cumsum(diffs)

一个解释:

第一行采用从一个数字到下一个数字的所有差异,从初始值(在示例中为 57)开始。

第二行查找所有负差异值,并将它们更改为 64 + 原来的值 - 如果将 62 更改为 2,我们需要添加 4:2 以达到 64,然后再增加 2。

第三行采用 cumsum 给出最终值。

关于r - R中64后的累积和(条件累积和),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31689928/

10-12 19:00