结合 2 df 使用 cross_join 的先前结果和增长率进行预测

2024-01-04

在我之前的问题中here https://stackoverflow.com/questions/76621713/combine-2-df-with-a-for-loop-to-make-projections?noredirect=1#comment135092935_76621713,我没有考虑使用之前的计算值来生成所需的增量增长率(H)预测。两位贡献者纠正了我之前的意图。我用了:

mutate(cross_join(df1[-3], df2), across(D:F)*H, H = NULL)

但是,我现在想使用 across(D*F) 中的前一个值来估计新值乘以 H。像这样的事情:

df1:
A   B   year    D   E   F
abc ab  2020    0   1   2
def cd  2020    3   4   0
ghi ef  2020    0   5   6
jkl gh  2020    7   8   0
mno ij  2020    0   9   10

df2: 
year    H
2021    1.1
2022    1.2
2023    1.3
2024    1.4
2025    1.5

df3 # for abc ab
A   B   year    D    E     F      H
abc ab  2020    0   1.00    2.00    1
abc ab  2021    0   1.10    2.20    1.1
abc ab  2022    0   1.32    2.64    1.2
abc ab  2023    0   1.72    3.43    1.3
abc ab  2024    0   2.40    4.80    1.4
abc ab  2025    0   3.60    7.21    1.5

可以看出,这些值现在根据 H 增长率而增加。我认为公式是这样的

Xn(1+Hm) 
Where
m = n+1
Xn = across(D:F)
Hm = H

df4 # for def   cd
A    B  year    D      E      F   H
def cd  2020    3        4    0   1
def cd  2021    3.3    4.4  0   1.1
def cd  2022    4.0    5.3  0   1.2
def cd  2023    5.1    6.9  0   1.3
def cd  2024    7.2    9.6  0   1.4
def cd  2025    10.8    14.4    0   1.5

我尝试过做这样的事情

mutate(cross_join(df1[-3], df2), across(D:F)[-1]*H, H = NULL)
I also tried the 
lag and lead functions combined with across

但也没有奏效。

任何帮助都是感激不尽。

编辑:新尝试

Try 1:

在 df2 中,我添加了一个符合我预期的示例。 给出了 0.1(例如,来自 df1),因此它是示例列的第一个观察值。然后第二个是0.1 * (H+1),依此类推;值以交换方式与前一个值进行估计。

Time      H   example
2010  0.000 0.1000000
2011  0.063 0.1062585
2012  0.049 0.1114821
2013  0.061 0.1182550
2014  0.057 0.1250279
2015  0.028 0.1285086
2016  0.060 0.1361788
2017  0.058 0.1441024
2018 -0.049 0.1370985
2019  0.058 0.1449823
2020 -0.149 0.1233892
2021  0.159 0.1430246
2022  0.076 0.1538541
2023  0.168 0.1796427
2024  0.144 0.2054314
2025  0.126 0.2312200
2026  0.112 0.2570086
2027  0.100 0.2827973
2028  0.091 0.3085859
2029  0.084 0.3343745
2030  0.077 0.3601632

I tried this 
df2_1 <- df2 %>% mutate(example2 = cumsum(0.1 * (H+1)))
head(df2_1)

Time     H   example example2
2010 0.000 0.1000000   0.1000
2011 0.063 0.1062585   0.2063
2012 0.049 0.1114821   0.3112
2013 0.061 0.1182550   0.4173
2014 0.057 0.1250279   0.5230
2015 0.028 0.1285086   0.6258

Try 2:

df2_1 <- df2 %>% mutate(example2 = accumulate(H, ~ 0.1 * ( .x +1)))
head(df2_1)

Time     H   example example2
2010 0.000 0.1000000  0.00000
2011 0.063 0.1062585  0.10000
2012 0.049 0.1114821  0.11000
2013 0.061 0.1182550  0.11100
2014 0.057 0.1250279  0.11110
2015 0.028 0.1285086  0.11111

还是不行。

一旦我完成这个示例,我将尝试插入 cross_join 和 across mutate 函数。


构建您的其他问题(在某些方面非常相似):

df2 %>%
    add_row(year=2020, H=1, .before=1) %>% # create a 2020 row, because the desired output has this
    cross_join(df1) %>% 
    group_by(A, B) %>% 
    mutate(across(c(D:F), ~ . * H)) %>% # multiply D, E, and F by H ("." is a stand in for the columns)
    select(A, B, year = year.x, D:F, H) %>% # select the columns we want
    ungroup() %>%
    arrange(A, B, year)

我想我可能不得不使用rowwise(),但似乎没有它就可以工作!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

结合 2 df 使用 cross_join 的先前结果和增长率进行预测 的相关文章

  • 了解用于处理色边距的scale_fill_continuous_divergingx参数输入

    这个问题是我上一个问题的延续here https stackoverflow com questions 58718527 setting midpoint for continuous diverging color scale on a
  • 按列分组的数据帧上 R 中的行之间的差异

    我希望通过 app name 获得不同版本的计数差异 我的数据集如下所示 app name version id count difference 这是数据集 data structure list app name structure c
  • 带有nearPoints()的动态ggplot图层闪亮

    我熟悉闪亮的基础知识 但在这里遇到了一些困难 我希望能够在单击某个点以突出显示该点时添加 ggplot 图层 我知道 ggvis 可以做到这一点 并且画廊中有一个很好的例子 但我希望能够使用nearPoints 捕获点击作为 ui 输入 我
  • 如何在 R 中的另一个函数中使用 `sink` 函数?

    我有一个函数fun依赖于外部函数external 即来自某个包 我如何收集来自的所有警告external在字符向量中 这是一个最小的设置 External function from another package external lt
  • 再现频率矩阵图

    我想在 R 中重新创建一个情节 情节如下 来源 Boring E G 1941 作为动态平衡的统计频率 心理学评论 48 4 279 这略高于我的工资等级 能力 因此在这里询问 无聊的状态 第一次 A 只能出现 从不 0 或 总是 1 在
  • 根据不平凡的标准有效合并两个数据帧

    正在接听这个问题 https stackoverflow com questions 18821862 data selection error 18823432 18823432昨晚 我花了一个小时试图找到一个没有增长的解决方案data
  • 在单个显示器中绘制多个 jpeg 图像

    我需要在单个组合显示器 或画布 中绘制和显示多个 jpeg 图像 例如 假设我有图像 a b c d jpg 每个图像的大小不同 我想将它们绘制在 2x2 网格的一页上 能够为每个子图设置标题也很好 我一直在彻底寻找解决方案 但不知道如何去
  • 获取所有矩阵列逐元素乘积对的快速方法

    假设我有一个数字matrix set seed 1 mat lt matrix rnorm 1000 ncol 100 我想生成所有向量 它们是中所有唯一向量对的逐元素乘积的结果mat 我们如何改进下面的代码 all pairs lt t
  • 使用pivot_longer将R中的多列变成一列[重复]

    这个问题在这里已经有答案了 我有一个dfpopulation看起来像这样 未列出所有列和行 Region X1975 X1976 X1977 X2008 National Total 942420 93717 94974 132802 Be
  • 按具有作业的组划分的 R 分位数

    我有以下 df group rep seq 1 3 30 variable runif 90 5 0 7 5 df data frame group variable 我需要 i 按组定义分位数 ii 将每个人分配到相对于其组的分位数 因此
  • R:如何根据规范更改数据框中的列名称

    我有一个数据框 它的开头如下 SM H1455 SM V1456 SM K1457 SM X1461 SM K1462 ENSG00000000419 8 290 270 314 364 240 ENSG00000000457 8 252
  • R lubridate:当地语言的工作日

    如何获取本地语言的工作日和月份 My code library lubridate data lt c 10 02 2015 11 03 2015 data lubri lt dmy data wday data lubri label T
  • Shiny可以识别用鼠标选择的文本(突出显示的文本)吗?

    我需要用户将文本片段分配给 Shiny 中的类别或 代码 基本上 我希望用户突出显示输出中的文本 在下面的示例中 来自table or text输出 然后按一个按钮 code 并将选定的文本分配给应用程序内的对象 在下面的应用程序中 所选文
  • 将 read.csv 与符号链接文件一起使用

    我正在尝试做什么 我的源文件非常大 我想避免将其复制到其他文件夹中 我决定创建一个指向大文件的符号链接并想使用read csv读取文件 文件夹结构 项目1 数据 源文件 csv 项目2 数据 别名到源文件 csv 什么地方出了错 读取源文件
  • R:为什么 boxplot(x,log="y") 与 boxplot(log(x)) 不同?

    delme lt exp rnorm 1000 1 5 0 3 boxplot delme log y boxplot log10 delme 为什么这两个图中的胡须不同 谢谢 阿古斯 我想说的是 在您的第一个图中 您只是将 y 轴更改为对
  • 回归时如何设置系数值;右

    我正在寻找一种指定预测变量值的方法 当我使用当前数据运行 glm 时 其中一个变量的系数接近 1 我想将其设置为 0 8 我知道这会给我一个较低的 R 2 值 但我先验地知道模型的预测能力会更大 glm 的权重组件看起来很有希望 但我还没有
  • 如何使用 sprintf 函数在字符中添加前导“0”而不是空格?

    我正在尝试使用sprintf函数为字符添加前导 0 并使所有字符长度相同 然而我得到的是领先空间 My code a lt c 12 123 1234 sprintf 04s a 1 12 123 1234 我试图得到什么 1 0012 0
  • 使用 readHTMLTable 从 https 网页读取表格

    我安装了 R 3 3 1 并使用 RStudio 0 99 903 我正在尝试从以下 URL 将表格读入 R https www fantasypros com nfl rankings consensus cheatsheets php
  • 将日期时间字符串转换为 Date 类

    我有一个带有日期时间字符列的数据框 当我使用as Date 除了少数实例之外 我的大多数字符串都被正确解析 下面的示例有望向您展示发生了什么 my attempt to parse the string to Date uses the s
  • 在函数中使用 quit/q 会导致 RStudio 出现致命错误

    更多的是好奇 但当你使用时q or quit在 R studio 内的函数内部 它会导致致命错误 如下所示 但 rgui 中的相同函数会导致 R 像往常一样停止 并且仅使用q 在 RStudio 中按预期关闭 R 为什么q在函数中导致 RS

随机推荐

  • 如何注释掉 XML 元素(使用 minidom DOM 实现)

    我想注释掉 xml 文件中的特定 XML 元素 我可以删除该元素 但我更愿意将其注释掉 以备以后需要 我目前使用的删除元素的代码如下所示 from xml dom import minidom doc minidom parse myXml
  • Django 编辑用户配置文件

    我正在尝试在前面创建一个 编辑个人资料 表单 发生的情况是我的表单 我不是 100 确定 尝试创建一个用户 而不是查找当前用户并更新他的个人资料 所以我认为这就是问题所在 在这里检查了很多问题 但没有一个足够清楚 我尝试编辑的字段是电子邮件
  • 此处不允许使用列 Oracle SQL 处理多个列

    我正在尝试将记录插入表中 但当我插入此记录时 我的 项目评级列 下例中的 PG 上出现 此处不允许列 错误 INSERT INTO ITEM VALUES item s1 NEXTVAL 786936161878 SELECT common
  • Rails 反跳延迟作业后台任务?删除重复项

    去抖是推迟函数 作业执行直到经过一定时间之后的常用方法 用例 来自多个用户的活跃聊天对话 他们不应该收到每条键入消息的电子邮件通知 但很可能在几分钟的静默后 如果消息未读 用户应该会看到一条通知 延迟作业 没有解决方案 有相关问题 http
  • 互斥查询

    Question 您如何将产生互斥结果的 IF ELSE 分配到产生相同结果的查询中 Use Case 作为主体 当前登录的用户 我可以获得组织中的用户列表 如果我被分配到任何部门 那么用户列表是分配到相同部门的较小的集合 Example
  • OpenCV C++ 转换为 Java 以解决形状检测问题

    我们对 openCV Java 开发有点陌生 遇到了一个问题 我们正在努力转型这段代码 https github com bsdnoobz opencv code blob master shape detect cpp到 Android
  • Python3 - Sympy:展开三角函数的乘积

    我找不到让 SymPy 扩展产品的方法 例如cos a cos b 转化为角度和的三角函数之和 from sympy import init printing wrf wlo t symbols omega RF omega LO t c
  • 如果我的状态没有改变,还需要 OTP 吗?

    我有一个 erlang 项目 其状态完全是只读的 由 ets 表和编译模块 https stackoverflow com questions 5130382 erlang gen server with a large state 代码启
  • 多处理中的共享内存对象

    假设我有一个内存很大的 numpy 数组 我有一个函数func它将这个巨大的数组作为输入 以及一些其他参数 func不同参数可以并行运行 例如 def func arr param do stuff to arr param build a
  • 命名参数的 Groovy 用法

    我有一个像这样的绝妙方法 def createMyObj id instanceId isValid def myObj new SomeObj myObj setId id myObj setInstanceId instanceId m
  • 聚合静态库

    我尝试将多个 a 文件聚合为一个文件 命令如下 TARGET libnumpy a DIR build lib linux x86 64 2 6 numpy FILES DIR core sort a DIR core multiarray
  • Safari AJAX 错误 - 无法加载资源

    从今天开始 我正在开发的网络应用程序中出现了一个非常奇怪的错误 我没有对代码做任何事情 但日复一日地出现了这个错误 我向运行 MAMP PRO 的本地服务器执行 AJAX 请求 不是使用 jquery 而是使用普通 js 在 Chrome
  • JSF 转换器导致验证器被忽略

    这是该字段
  • 基于总和的 Hibernate 属性

    我发现我可以使用 hibernate 来使用 HQL 获取多个实体的总和 如下所示 public Long getEnvelopeTotal AbstractEnvelope envelope String query select sum
  • ISO 8601:2004 中的 C 预处理器 __TIMESTAMP__

    我怎样才能拥有一个 TIMESTAMP ISO 8601 2004 中的替代品 TIMESTAMP Sat Jul 6 02 50 06 2013 vs TIMESTAMP ISO 2013 07 06T00 50 06Z 噢 乐观主义者
  • 如何在iOS中永远重复动画? [复制]

    这个问题在这里已经有答案了 在我看来 我想永远重复一个动画 下面是我的代码 UIView animateWithDuration 0 5f delay 0 49f options UIViewAnimationOptionCurveEase
  • XML 架构 - 只有一个元素应将属性设置为 true

    我如何定义一个只能在一个元素中设置为 true 的布尔属性 以下代码段必须无效
  • 如何使用 gcc 或 clang 模拟 _mm256_loadu_epi32?

    英特尔的内在指南列出了内在 m256i mm256 loadu epi32 void const mem addr Instruction vmovdqu32 ymm m256 CPUID Flags AVX512VL AVX512F De
  • Beam/Google Cloud 数据流 ReadFromPubsub 缺失数据

    我有 2 个数据流流管道 pubsub 到 bigquery 代码如下 class transform class beam DoFn def process self element publish time beam DoFn Time
  • 结合 2 df 使用 cross_join 的先前结果和增长率进行预测

    在我之前的问题中here https stackoverflow com questions 76621713 combine 2 df with a for loop to make projections noredirect 1 co