问题标签 [cumsum]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
99 浏览

r - 在 R 中合并数据表

对于这个简单的问题,我深表歉意。基本上,我想制作三个单独的 cumsum() 表,并通过第一个表将它们合并在一起。例如:

其中a是df$variable的整个向量的cumsum,b是df$variable的奇数值的cumsum,c是df$variable的偶数值的cumsum。另一种解释方式是结合bc产生a

这是整个数字向量。

对于一个,我使用 cbind(cumsum(table(df$variable)))

对于 b,我使用 cbind(cumsum(table(df$variable[c(TRUE, FALSE)])))

对于 c,我使用 cbind(cumsum(table(df$variable[c(FALSE, TRUE)])))

在频率形式中,分布应该是这样的。

但我希望它采用 cumsum() 形式,这样它应该看起来像这样。我写了前 6 行作为说明。

我遇到的问题是子集ab没有所有值(即某些值的频率为 0),因此它缩短了向量的长度;结果,我无法正确合并或 cbind() 这些值。

非常感谢任何建议。

0 投票
2 回答
148 浏览

r - 通过匹配值子集数据,然后运行 ​​cumsum() 作为频率

我已经坚持了一段时间了,我希望这个描述不会太混乱。基本上,我有一个由三列组成的数据框:参与者、时间和响应,其中要求每个参与者做出两个响应,每个时间点一个响应。下面是一个插图:

对于每个参与者,我想将他们的时间 3 响应与他们的时间 4 响应进行比较,以便将匹配值计入 cumsum 频率表上的特定值。下面是一个示例,而不是实际输出

,其中第一列是值本身,第二列是在两个时间点选择相同响应的参与者的累积频率(例如,3 名参与者在两个时间点选择了 0 的响应,5 名参与者选择了一个响应 < = 1,7 名参与者选择了一个响应 <= 2,等等)。

非常感谢任何提示。

0 投票
2 回答
1023 浏览

matlab - 循环的累积和matlab

我正在尝试对特定风暴和多个风暴中所有观测的飓风观测之间的连续小时数(变量“小时”)进行累积求和,以确定风暴的持续时间。这就是我所拥有的:

我的目标是总结每个风暴 id 的小时数,所以我认为使用 accumarray 会起作用,但它没有。这是我尝试过的。

然后我也尝试了cumsum,但我无法弄清楚当风暴ID相同时如何只使用cumsum。

如果有人有任何想法,我将不胜感激!谢谢。

0 投票
0 回答
726 浏览

python - pandas.groupby 中的 Cumsum 很慢

我想知道是否有更快的方法在熊猫中运行 cumsum。

例如:

现在,我想使用 id 进行分组并获取一些统计信息。例如,最大值非常快:

CPU 时间:用户 5.08 秒,系统:131 毫秒,总计:5.21 秒挂壁时间:5.22 秒

但是,cumsum 很慢:

CPU 时间:用户 26.8 秒,系统:707 毫秒,总计:27.5 秒挂壁时间:27.6 秒

我的问题是我需要在一个大数据集中按一个键分组的 cumsum,几乎如图所示,但这需要几分钟。有没有办法让它更快?

谢谢!

0 投票
1 回答
427 浏览

r - 如何使用 R 中的 diffinv 重建具有领先 NA 的差异数据?

我有一个类似于下面的大数据矩阵(“trial.matrix”)。

我的问题要求我打乱这个矩阵的不同版本的一些行,然后从打乱的差分矩阵中重建一个矩阵。当我申请 diff(trial.matrix) 我得到:

要重建原始数据帧,我需要使用 cumsum() 或 diffinv(),例如:

但这给出了:

显然,第 2 列的起始值(“xi”)必须从第 3 行(或第 4 行?)开始应用。我在实数矩阵中有许多列,有些带有前导 NA,有些没有。我需要在重建中保留领先的 NA。我想不出一种简单的方法来以简单的方式重建差分矩阵中具有 NA 的列。

(对于每一列,我可以构造两个向量,一个包含第一个非 NA 行,另一个包含第一个 NA 值,但无法找到使用这些向量的直接方法。)

建议表示赞赏。

0 投票
1 回答
262 浏览

matlab - MATLAB 分步应用 CUMSUM

我有 x = 500 X 612 矩阵中的整数数据。我需要一个 500 X 612 矩阵中的新变量 xx 但我需要在 12 列步骤中沿每行 (500) 应用 cumsum 并像这样应用 cumsum 51 次 --> 500 X (12 X 51) 矩阵。然后我需要一个 for 循环来生成 cumsum 时间序列的 500 行和 12 列的 51 个图。谢谢你!

0 投票
4 回答
1159 浏览

python - NumPy中的cumsum函数在添加时会衰减吗?

我有一组值a = (2,3,0,0,4,3)

cumsum在添加下一个值之前,有什么方法可以使用numpy并将 .95 衰减应用于每一行?

0 投票
2 回答
315 浏览

r - 基于向量的下一个值的条件 cumsum

我正在尝试根据以下条件计算具有元素 0,1,NA 的向量的累积和:

1)只需计算 NA 值之间的 cumsums

2)如果 0 出现在 1 之后,那么我想要 cumsum+1

Out 是原始向量:

我使用此代码来计算 NA 值之间的累积和:

我明白了

现在我有一个问题,如果 1 后面跟着一个零(这里只是第一个零),我想得到 cumsum+1

例如

0 1 1 0 0 0 1 0 1 1 不适用

有了我现在拥有的功能,我会得到

0 1 2 2 2 2 3 3 4 5 NA,但我想要的是:

0 1 2 3 3 3 4 5 6 7 不适用

有人可以帮忙吗?谢谢你。

0 投票
1 回答
89 浏览

matlab - CUMSUM 沿分段中的行 - MATLAB

我在数组中有数据A = 100 X 612。我需要在12列段中累积添加51时间并将结果存储在一个新数组B = 100 X 612中。最终数组B沿列累计求和,12然后再次cumsum沿列继续使用,13:24并像这样继续直到结束列601:612。这是按行顺序重复100的次数。

我已经多次尝试使用循环但无法得到答案 - 必须有一种更简单的方法来获得解决方案..太依赖于循环!

0 投票
1 回答
687 浏览

r - r 累积和函数,条件

我在 R 中有一个数据框,相当大的 600 行/观察值

一列patientId不是数字形式,例如 ju89、ju87,所以它是一个因子列

一列是remission1/0,其中 1 表示缓解 0 表示不缓解

一列是timefromdiagnosis

现在,从诊断开始,患者从 1 到 0、0 到 0、0 到 1 或 1 到 1

我想在它所在的数据框中添加一列

  • 1 当患者缓解时为 0
  • 2 当患者正好有 1 个缓解时,他最后一次有 0 或有 1 个缓解,他最后一次有 1 缓解或有 1 缓解,这是他的第一次观察
  • 3 当患者有 1 次缓解且最近 2 次或更多次有 1 次缓解时

我考虑用 cum sum in 来做这件事plyr,但它不适合我想做的事情,或者不太清楚如何适应

数据框已经排序,因此患者 ID 彼此相邻,并且随着您阅读数据框,每个患者的诊断时间都会增加

由于机密性,我无法提供数据框,但在这里它看起来像是为了澄清事情

这是我开始的数据:

这是我想要得到的,疾病阶段是我想要的专栏:

请注意患者如何ju38达到 3,因为他已经连续 3 次缓解,包括现在的时间(最近两次缓解和现在),然后他停留在 3,因为他只是有另一个缓解,然后他进入疾病阶段 1,因为他有一个 0缓解。

患者ju88在 t=2 时有缓解,在最后一次 t=1.5 时有缓解,但这只是包括 t=2 在内的两次连续缓解,因此他处于疾病 2 期

患者ju23在 t=1.9,缓解期为 1,这是对他的第一次观察,因此他满足疾病阶段 2 的标准,如果缓解期为 0,他将处于疾病阶段 1