【问题标题】:Simple Data manipulation task in RR中的简单数据操作任务
【发布时间】:2020-07-09 17:06:33
【问题描述】:

假设我有一个类似于以下示例数据的数据框。

qty_available<- c(13500, 8500, 4600)
supply_qty<- c(0, 1000, 0)
forecast<- c(1200, 400, 3000)
demand_q<- c( 100, 800, 6000)

df<- data.frame(qty_available, supply_qty, forecast, demand_q)

我正在尝试进行以下操作:我希望 qty_available 等于之前的 qty_available + 供应数量 - 预测 - 需求数量。我可以忽略第一个观察结果,因为它与我的任务上下文无关。

所以在第二个观察中,我们将有 13,500 + 1000 -400 -800 给我们 13,300。第三个观察结果将是 13,300 + 0 - 3000 -6000 给我们 4300。

我已经尝试如下,但它不会起作用,因为我认为答案不会“流过”

df<- mutate(df, qty_available = lag(qty_available) + supply_qty - forecast - demand_q)

我正在尝试这样做,以便第三次观察的答案最终变为 4300。

我正在通过 R 在 Excel 中模拟一个过程,其中正确的值是 4300。我只是不知道如何在 R 中模拟该过程。

我将如何在 R 中执行此操作?任何帮助是极大的赞赏。我敢肯定这很简单,但我似乎无法弄清楚。

【问题讨论】:

    标签: r


    【解决方案1】:

    我认为第三个观察结果会给我们 -500,因为第二个 qty_available 观察结果是 8500 而不是 13,300。

    所以我认为应该是 8,500 + 0 - 3000 - 6000 = -500。

    如果您将 qty_available 固定为第一个 qty_available (13,300),那么我们预计答案是 4300。

    滞后函数采用行中的前一个值,而不是将其固定为第一个值。

    【讨论】:

    • 我想我的措辞可能很糟糕。最大的问题是,我将如何进行编码以使答案成为 4300?这就是我正在寻找的答案。我本质上是在尝试模仿通过 R 中的 excel 完成的过程,其中 4300 是答案。
    • 另外,我需要代码流过远大于 3 个观察值的 DF。
    • 可以分享一下excel公式吗?
    • excel 数据的格式完全不同,但就该数据而言,假设您将其导出为带有标题的 CSV 格式的 excel,则第二个观察结果如下:=A2+B3 -C3-D3。然后只需将其向下拖动到列的其余部分
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多