R中64后的累计和(Conditional Cumulative sum)
Cumulative sum after 64 in R(Conditional Cumulative sum)
我是 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 中执行以下功能。我可以在 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给出最终值