问题标签 [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.
r - 按因子运行总计计算
我想根据因素(Well_N)获得运行总数,这就是我将数据分组的原因
我想在我的数据框中将运行总计作为新列,但结果我在数据框中得到了数据框。任何建议/指导如何正确地做到这一点?
请参阅带有问题详细信息的GitHub 存储库。
r - R apply cumulative sum
I recently asked a question that started me in the right direction, but left me with a few unsolved issues.
I have a data.frame with final growth measurement values listed in the last row (RBH). Each sample is in a separate column and has a different end year of observation (2010, 2011, or 2012). Basically, I need to apply the final total growth measurement (RBH value) to the last year with a measurement, and then subtract each previous year's annual growth measurement from the current growth measurement to recreate how large the sample was each year.
The solution given in the previous question allows me to create a cumulative sum to subtract from each measurement, however it doesn't treat NA or NaN values appropriately. If a given sample has the following measurements, then the output should be as follows:
Sample measurements:
Intended Output:
The code I've been using that was suggested by another user is as follows:
This works for the cumulative sum, but doesn't deal with NA values. Any suggestions would be greatly appreciated.
r - R:应用累积和函数并用 NA 填充数据空白以进行绘图
我有一个看起来像这样的数据框,我正在尝试计算行 VALUE 的累积总和。输入文件也可以在这里找到:https ://dl.dropboxusercontent.com/u/16277659/input.csv
我的最终目标是绘制每个 SAMPLE 的图,其中在 x 轴上绘制 SURVEY_YEAR,在 y 轴上绘制后来计算的 VALUE 的累积总和 CUMSUM。到目前为止,我的代码整理数据:
这将产生以下数据框,它是计算行 VALUE 的累积总和的起点。
现在的问题是我想计算每年行 VALUE 的累积总和。如您所见,我在某些年份之间存在差距(例如,在 1890 年至 1911 年之间的 SAMPLE1 和 1998 年至 2005 年之间的 SAMPLE2 中),我想用 NA 值填补每年之间的差距,以便我可以使用绘图类型进行绘图='b'(点和线),因此不同的间隙不连接。重要的是,如果彼此之后有多个 NA 值,则在 CUMSUM 行中,最后一个 NA 值应替换为之前的最后一个数值。
正常情况是 REFERENCE_YEAR 和 SURVEY_YEAR 之间的差等于 1(例如,对于 SAMPLE1 从 1880 年到 1881 年的第一个示例),但在某些情况下,REFERENCE_YEAR 和 SURVEY_YEAR 之间存在不同的周期(例如,在 SAMPLE1 从 1911 年到1913 年和 2009 年至 2013 年的 SAMPLE2)。如果是这种情况,则累积和的函数应该只应用一次,并且值应该在指定的时期内保持不变(在图中,这会导致一条连接的直线)。
很难详细解释所有内容,如果我提供一个结果应该是什么样子的示例,可能会更容易:
非常感谢您对这个相当复杂的案例的帮助!谢谢!
r - R:用 NA 填补数据空白并应用 cumsum 函数
有人要求我稍微分解一下我在这里提出的问题(R:应用累积和函数并用 NA 填充数据间隙进行绘图)并发布一个较小的样本。在这里,您可以在这里找到我的示例数据:https ://dl.dropboxusercontent.com/u/16277659/inputdata.csv
我想计算 VALUE 列的累积总和,并用 NA 值填充中间年份的数据空白(数据结构应该相同,因为我需要其他列进行进一步处理)。
填充数据间隙时,应像 SAMPLE1 一样填充 NA。在 CUMSUM 列中填写多个 NA 时,请注意 NA 后面的值的位置(例如,除了 VALUE 中的最后一个 NA(用于绘图原因)之外,应填写最后一个 CUMSUM 值。
REFERENCE_YEAR 和 SURVEY_YEAR 之间的期间大于一年的情况是一个例外,应将值写入列中,如 1992 年至 1994 年期间的 SAMPLE2 中的值。
这只是一个示例数据集,我的实际数据集由几列和大约 40000 行组成。最好是 BaseR 中的解决方案。每个 SAMPLE 的第一行中的 REFERENCE_YEAR 和 SURVEY_YEAR 相等是我用于为每个组编写零列的代码的结果。
-------------------------------------------------- ------------------------------------------
r - R 可以就地执行 cumsum 之类的操作吗?
在 Python 中,我可以这样做:
我在这里所做的是用它的 cumsum替换内容。a
之前和之后的地址是一样的。
现在让我们在 R 中尝试一下:
问题是如何用计算结果覆盖 R 中已经分配的内存?当我在 R 与 Rcpp 中进行向量操作时(用 C++ 编写代码并从 R 调用它,这让我避免了不必要的分配),缺乏这种东西似乎导致了显着的性能差异。
我在具有 24 个物理内核和 128 GB RAM 的 Ubuntu Linux 10.04 上使用 R 3.1.1。
r - R,dplyr:n_distinct的累积版本
我有一个如下的数据框。它按列排序time
。
输入 -
我想创建另一个变量var2
,它计算var1
到目前为止没有不同的值,即直到time
每个组的那个点grp
。这与我使用n_distinct
.
预期产出 -
我想为此创建一个函数cum_n_distinct
并将其用作-
r - R如何按组取最高值,直到其总和超过一个值
我有一个这样的数据框
对于每个组,我想取最高值行,直到它们的总和超过/达到目标值
并将新组输出为 4 个数据帧。
我把它们从大到小排序
所需的输出是
这样做的最佳方法是什么?
谢谢。
matlab - “设备内存不足”,gpuArray 上有 cumsum
我正在尝试使用 MATLAB 的 cumsum 函数在 22000x22000 gpuArray 上执行累积和,其中填充了 -1s、0s 和 1s。我正在使用具有 3GB 内存的 NVIDIA GeForce GTX 780 Ti。双精度 gpuArray 太大(3.9GB),但自然适合单精度。
尝试对我的单精度 gpuArray 进行 cumsum 再次导致达到我的内存限制,但我不确定这是否是由于内存类型或计算 cumsum 的方法,因为它是一个 MATLAB p 文件。这也意味着无论我对用于计算的数据类型几乎没有控制权。编辑: cumsum 也不支持整数数据类型。编辑:在进一步检查中,在缩减数组上执行此操作的结果是单一的,因此很可能函数将数组作为输入类型进行操作。
所以我的问题是:有没有 cumsum 的替代品?(不是循环 - 见注释)无论是通过允许指定数据类型的 MATLAB 还是 CUDA。或者有人可以概述如何矢量化(矩阵化?) cumsum 操作,以便我可以自己编写它?
编辑:替代必须能够对整数类型进行操作,因为仅生成 CUM 矩阵将超过内存限制。2xsingle = 双...
注意:鉴于我将多次执行此计算(论文中没有提出限制),理想情况下,cumsum(gpuArray) 与 cumsum(double) 的速度增加 >200 倍。更别提循环了,慢得离谱。
python - Pandas Dataframe cumsum 按行倒序排列?
有没有更优雅的方法来实现这一点?我目前基于各种stackoverflow答案的解决方案如下
输出
我必须经常对我的数据执行此操作(也更大),并尝试找到一种更短/更好的方法来实现这一目标。
谢谢
r - 如何从 R 中的向量创建一组范围?
假设我有一个指定长度的数字向量。
然后我运行 cumsum 来获取他们的范围。
我如何将每个配对以产生成对的范围,从 1 开始。
最好作为字符向量: