r - 从小数据集中的增量计算创建数组
问题描述
对于包含 7 个项目的特定小数据集,我创建了以下新数组:
f.rhs <- c((-orig_qty + looped_data$TOTAL_EFFECT[1])/looped_data$MULTIPLE_ORDER_QTY[1],
(-orig_qty + looped_data$TOTAL_EFFECT[1] + looped_data$TOTAL_EFFECT[2])/looped_data$MULTIPLE_ORDER_QTY[1],
(-orig_qty + looped_data$TOTAL_EFFECT[1] + looped_data$TOTAL_EFFECT[2] + looped_data$TOTAL_EFFECT[3])/looped_data$MULTIPLE_ORDER_QTY[1],
(-orig_qty + looped_data$TOTAL_EFFECT[1] + looped_data$TOTAL_EFFECT[2] + looped_data$TOTAL_EFFECT[3]+ looped_data$TOTAL_EFFECT[4])/looped_data$MULTIPLE_ORDER_QTY[1],
(-orig_qty + looped_data$TOTAL_EFFECT[1] + looped_data$TOTAL_EFFECT[2] + looped_data$TOTAL_EFFECT[3]+ looped_data$TOTAL_EFFECT[4] + looped_data$TOTAL_EFFECT[5])/looped_data$MULTIPLE_ORDER_QTY[1],
(-orig_qty + looped_data$TOTAL_EFFECT[1] + looped_data$TOTAL_EFFECT[2] + looped_data$TOTAL_EFFECT[3]+ looped_data$TOTAL_EFFECT[4] + looped_data$TOTAL_EFFECT[5] +looped_data$TOTAL_EFFECT[6])/looped_data$MULTIPLE_ORDER_QTY[1],
(-orig_qty + looped_data$TOTAL_EFFECT[1] + looped_data$TOTAL_EFFECT[2] + looped_data$TOTAL_EFFECT[3]+ looped_data$TOTAL_EFFECT[4] + looped_data$TOTAL_EFFECT[5] +looped_data$TOTAL_EFFECT[6] + looped_data$TOTAL_EFFECT[7])/looped_data$MULTIPLE_ORDER_QTY[1])
如您所见,这段代码非常难看。基本上发生的事情是在每个新值上,我们正在获取以前的值并从下一行数据中添加一些新的东西(本质上是增量计算)。
我将如何进行相同的过程并为包含任意数量观察的数据集制作这一行?
解决方案
使用cumsum()
会帮助你。可能是这样的:
f.rhs = (-orig_qty + cumsum(looped_data$TOTAL_EFFECT)) / looped_data$MULTIPLE_ORDER_QTY[1]
推荐阅读
- php - 运算符“===”在对象中使用时无法正确评估,因为它应该 php
- python - 如何从 Treeview / Tkinter (SQLite) 中的不同表中获取不同的值?
- python - 为什么 hist2d 绘制 UNIFORM 密度图?
- python - 我如何压缩所有这些“if”语句?
- azure-devops - 在 Azure DevOps 测试结果中查看单元测试说明
- android - ExposedDropdownMenu 中的字符串以外的其他对象
- javascript - 使用highchart在柱形图中获取一系列的一系列
- python-3.x - 如何在 Python 中将毫秒转换为具有小时、分钟和秒的格式?(超过 24 小时)
- node.js - 引擎“节点”与此模块不兼容。预期版本“12.x”。得到“14.8.0”
- azure - 通过 Azure DevOps 将多个应用程序部署到同一个 Azure Web 应用程序