在 dplyr 中使用动态位置数创建滞后/超前变量

2023-12-04

我正在寻找一种方法来生成从具有动态位置数的滞后列派生的列(参数n),这意味着这个新列应该作为参数n存储在另一列中的值(参见lag文档功能)。

样本数据:

set.seed(42)
df <- as_tibble(data.frame(
  id = c(rep(1,6), rep(2,5), rep(3,6)),
  n_steps = c(0,0,0,0,1,2,0,0,1:3,0,1:5),
  var1 = sample(1:9, 17, replace = TRUE),
  var2 = runif(17, 1, 2)))

# A tibble: 17 x 4
      id n_steps  var1  var2
   <dbl>   <dbl> <int> <dbl>
 1     1       0     1  1.08
 2     1       0     5  1.51
 3     1       0     1  1.39
 4     1       0     9  1.91
 5     1       1     4  1.45
 6     1       2     2  1.84
 7     2       0     1  1.74
 8     2       0     8  1.81
 9     2       1     7  1.39
10     2       2     4  1.69
11     2       3     9  1.00
12     3       0     5  1.83
13     3       1     4  1.01
14     3       2     2  1.21
15     3       3     3  1.91
16     3       4     9  1.61
17     3       5     9  1.38

更实际地说,我的想法是我想创建一个变量var3符合以下条件:

  • if n_steps == 0, var3 = var1
  • if n_steps > 0, var3 = var1+ 滞后var2 by n_steps steps

我尝试了以下代码

df %>% 
  group_by(id) %>% 
  mutate(var3 = ifelse(n_steps == 0, var1, var1 + lag(var2, n = n_steps)))

返回以下错误

错误:有问题mutate() input var3. n必须是一个 非负整数标量,不是长度为 6 的双精度向量。输入var3 is ifelse(n_steps == 0, var1, var1 + lag(var2, n = n_steps))。 错误发生在第 1 组:id = 1。运行rlang::last_error()到 查看错误发生的位置。

我明白了:论证n需要一个标量值。我想引用当前行,但我没有在 SO 上找到任何有关它的信息。另外,我可以为每个假定的值创建 N 个新变量n_steps,但我正在寻找一种动态使用这些滞后列而不实际创建它们的方法。我怎样才能实现它?

预期输出:

      id n_steps  var1  var2  var3
 1     1       0     1  1.08  1   
 2     1       0     5  1.51  5   
 3     1       0     1  1.39  1   
 4     1       0     9  1.91  9   
 5     1       1     4  1.45  5.91
 6     1       2     2  1.84  3.91
 7     2       0     1  1.74  1   
 8     2       0     8  1.81  8   
 9     2       1     7  1.39  8.81
10     2       2     4  1.69  5.81
11     2       3     9  1.00 10.81 
12     3       0     5  1.83  5   
13     3       1     4  1.01  5.83
14     3       2     2  1.21  3.83
15     3       3     3  1.91  4.83
16     3       4     9  1.61 10.83 
17     3       5     9  1.38 10.83

尝试这个?

df %>% 
  mutate(var3 = ifelse(n_steps == 0, var1, var1 + var2[row_number()-n_steps]))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 dplyr 中使用动态位置数创建滞后/超前变量 的相关文章

  • 如何在 R 中编写 csv 文件,其中我的输入作为行写入文件?

    这是一个非常简单的问题 令我惊讶的是网上没有例子 我有一个向量 vector lt c 1 1 1 1 1 我想将其写为 csv 作为一个简单的行 write csv vector file myfile csv row names FAL
  • R 中的闭包类似于 Python

    首先考虑以下 Python 代码 该代码计算函数被调用的次数 def counter fn count 0 def inner args kwargs nonlocal count count 1 print Function 0 was
  • 在R中,如何平均空间网格正方形上的空间点数据

    现在设法解决问题 我有一组大约 50 000 个点 它们具有坐标和一个与其关联的值 我希望能够将点放入网格中 对落在网格正方形中的所有点的关联值进行平均 所以我想最终得到一个对象来识别每个网格方块并给出网格方块内的平均值 如果有帮助的话 我
  • 如何在闪亮中使用带有reactiveValues的debounce

    我知道我可以像这样将 debounce 与reactive 结合使用 这就是我需要的行为 但我想改用reactiveValues ui lt fluidPage textInput inputId text label To see how
  • rpy2 在从 R 到 Python 的数据帧中处理 NA/缺失值时出现问题

    我在使用rpy2包进行转换时遇到问题dataframe将 R 中的内容保存到 Python 中 import os os environ R HOME Library Frameworks R framework Resources imp
  • 在 ggplot2 中,如何将堆叠直方图中的小值条形组合在一起?

    示例数据 tmp df lt data frame a rnorm 100 0 1 b rnorm 100 0 5 1 c rnorm 100 0 5 1 d rnorm 100 1 1 e rnorm 100 1 1 gt tidyr g
  • 使用变量在 r 中像 aes_string 一样选择轴

    我试图提供一个带有列名的变量来创建一个plotly图表 类似于ggplot2 aes string 不知怎的 我被困住了 plot ly iris x Sepal Length y Sepal Width works as expected
  • 将 data.frame 的列中的值替换为另一个 data.frame 中的值

    我的情况是 我有一个数据框 其中有一列填充了整数 1 到 6 我想用更具描述性的标签替换这些整数 这些标签在另一个充当 键 的数据框中提供 V1 V2 1 1 LABEL1 2 2 LABEL2 3 3 LABEL3 4 4 LABEL4
  • 闪亮的演示文稿 (ioslides):自定义 CSS 和徽标

    我安装了以下内容 RStudio 预览版 版本 0 98 864 2014 年 5 月 24 日 knitr 和shiny 的开发版本 来自 devtools install github c yihui knitr rstudio shi
  • R:变换不规则时间字符串

    我有两个不同的时间序列 来自不同的数据帧 具有不同的不规则格式 但问题是相同的 我只想提取小时 分钟 秒和毫秒 时代系列看起来像这样 ts1 08 27 23 445 08 27 24 280 08 27 25 115 I tried st
  • 在 mts 对象上使用 Apply 系列函数

    在 mts 对象上使用 apply 或 sapply 会在发送到函数时删除其时间序列属性 我应该如何在 mts 对象中的每个时间序列上应用相同的函数 带有 ts 输入和 ts 输出 并返回它 最好是 mts 我的意思是除了使用 for 循环
  • 单击并按住 R 中的按钮闪亮?

    我希望能够通过单击 R 闪亮按钮来更改参数的值 所以我需要按钮 一个用于增加值 一个用于减少值 我想在按住按钮的同时保持值以一定的速度减少 增加 通过释放按钮的点击 动作应该停止 到目前为止我还没有找到这个选项actionButtons在
  • 在 R 中读取 Stata 13 文件

    有没有办法在 R 中读取 Stata 版本 13 数据集文件 我尝试执行以下操作 gt library foreign gt data read dta TEAdataSTATA dta 但是 我收到一个错误 read dta TEAdat
  • 在 Shiny 中使用 readlines(prompt = )

    我有一个代码 使用以下方式获取输入readlines prompt 功能 您能告诉我 Shiny 中的哪个输入函数足以将此代码适应 Shiny 应用程序吗 我需要一个交互功能 我无法使用简单的输入selectInput 因为我有很多read
  • readRDS() 加载额外的包

    什么情况下会出现readRDS R 中的函数尝试加载包 命名空间 我很惊讶地在新的 R 会话中看到以下内容 gt loadedNamespaces 1 base datasets graphics grDevices methods sta
  • 将文本添加到 ggplot 中的轴标签

    我从下表中绘制了一个图表 BoatPhs fit se lower upper 1 Before 3 685875 0 3287521 3 038621 4 333130 2 After0 20NTA 3 317189 0 6254079
  • 解释 survreg 中的威布尔参数

    我正在尝试使用从 R 中的 survreg 估计的参数生成逆威布尔分布 我的意思是 对于给定的概率 这将是在 MS Excel 中实现的小型模拟模型中的随机数 返回使用我的参数预计出现故障 的时间 我理解逆威布尔分布的一般形式是 X b l
  • R 条形图中的 X 轴

    我想问一个关于 barplot 轴的问题 首先请看我的数据 SerNo DOY Rain 1 350 0 2 351 0 3 352 0 4 353 0 5 354 0 6 355 0 7 356 0 8 357 0 9 358 0 10
  • 如何在 R 地图库中绘制正确的颜色

    我正在尝试使用 R 地图库为特定国家绘制特定颜色 我可以填写颜色 但它们与各自的国家 地区没有正确关联 我想知道是否有人能知道为什么 我的数据框是 filld 有 3 列 第一列是国家名称 第二列只是一些数字数据 第三列是颜色 countr
  • 使用 SparkR 1.5 从 RStudio 中的 hdfs 读取大文件(纯文本、xml、json、csv)的选项

    我是 Spark 新手 想知道除了下面的选项之外是否还有其他选项可以使用 SparkR 从 RStudio 读取存储在 hdfs 中的数据 或者我是否正确使用它们 数据可以是任何类型 纯文本 csv json xml 或任何包含关系表的数据

随机推荐

  • NSDate isEqualToDate:不起作用 - 它是否查看秒和分秒?

    我不明白为什么这个方法不起作用 使用 isEqualToDate 时是否查看秒数和分秒数 Test that the NSDate category s DatePlusDays method works void testNSDateCa
  • 在 JavaScript 中通过 ID 引用 ASP.NET 控件?

    当 ASP NET 控件呈现时 它们的 id 有时会发生变化 就像它们位于命名容器中一样 Button1实际上可能有一个 idctl00 ContentMain Button1例如 当它被渲染时 我知道您可以将 JavaScript 作为字
  • jQuery Mobile 默认选项卡

    我想在 jQuery Mobile 中设置默认选项卡 我的源代码 div div ul li a href one one a li li a href two two a li li a href ajax content html th
  • 将 bash 脚本添加到路径

    我想向 linux PATH 添加一个小脚本 这样我就不必在磁盘上物理放置的位置实际运行它 该脚本非常简单 就是通过代理提供 apt get 访问权限 我这样做是这样的 bin bash array len array args array
  • JQuery Datepicker 返回 Date 对象类型

    Datepicker返回的对象类型是什么 假设我有以下内容 txtbox datepicker onClose function date something What is date 我有兴趣从另一个日期选择器读取日期对象进行比较 例如
  • Wix 安装、服务器、客户端或两者

    我想创建 Wix 安装程序来安装 Client Server或两者都基于用户选择 我的问题是当用户选择服务器时如何限制安装客户端 它被安装 因为它的级别 1 我已经定制了WixUI Mondo 我尝试使用组件条件但没有成功
  • 任何 iPhone 应用程序使用的内存

    关于iOS内存管理 我有一些不明白的地方 我想知道 iPhone 应用程序在设备上运行时通常需要多少内存 是否有像 10MB 这样的固定数字 如果应用程序包含大量大图像 对内存有何影响 它们仅在加载时影响内存吗 当有多个应用程序运行时 iO
  • WebBrowser 控件报告什么 UserAgent?

    只是想知道 VB NET 在访问网页时读取的浏览器类型是什么 例如 在我的网站上 它显示了访问我的网站的所有不同浏览器的详细信息 您没有为您的问题提供太多背景信息 但我认为您正在谈论用户代理字符串当您使用时发送的WebBrowser con
  • 使用路径变量在 golang 中调用 GET REST API

    我是第一次尝试Golang 我正在尝试调用具有路径变量的 GET REST API 我正在使用 net http 我正在尝试如下所示 但到目前为止还没有运气 我需要知道如何使用路径变量并从代码中传递该变量 任何帮助或代码示例将不胜感激 这似
  • SQL Server - 重叠数据的累积总和 - 获取总和达到给定值的日期

    在我们公司 我们的客户执行我们在不同表中记录的各种活动 面试出勤 课程出勤和其他一般活动 我有一个数据库视图 它将所有这些表中的数据结合在一起 为我们提供了如下所示的 ActivityView 正如您所看到的 一些活动是重叠的 例如 在参加
  • 生成 1D 张量作为 2D 张量的行的唯一索引

    假设我们通过为每个不同的行提供不同的索引来将 2D 张量转换为 1D 张量 从0 to the number of rows 1 1 2 1 3 1 4 gt 0 1 2 但如果有相同的行 那么我们重复索引 如下所示 1 2 1 2 1 4
  • 将自定义小部件添加到 QTableWidget 单元格

    我有使用 qt 设计器制作的自定义小部件 我想将其添加到 QTableWidget 单元格中 但这不起作用 这是代码 int nRows 10 for int row 0 row lt nRows row QTableWidgetItem
  • 使用sscanf多次读取字符串

    我正在尝试读取多维数组内字符串的内容 问题是 当我这样做时 sscanf 继续仅读取第一个字符 我的绳子上有这个 A1 A2 A3 A4 我想读取 c d 如果只是 A1 我可以读取这个 但是当这种情况发生时 它只读取 A1 我这样做是为了
  • global-variable-exists 在 Sass 中触发错误

    我正在使用类似三元的语句来初始化 Sass 中的变量 这允许我将一些默认变量设置为 Zurb Foundation 正在使用的相同变量 但如果我决定不包含 Foundation 模块 那么事情就不应该落在他们头上 nav link icon
  • 如何用 Python 解释 JavaScript

    可以用Python运行JavaScript吗 有任何库可以实现这一点吗 我需要执行一些 JavaScript 我知道这对于某些 Java 库是可能的 但我更喜欢 Python 有人可以给我一个线索吗 此致 你可以检查蜘蛛猴
  • 有没有一种方法可以在不使用 IIS 的情况下使用 WCF 自定义友好 URL?

    有没有一种方法可以在不使用 IIS 的情况下使用 WCF 自定义友好 URL 特别是 我希望通过我自己的 Windows 服务中托管的 app config 执行类似的操作 WebGet UriTemplate foo id public
  • JSF Eclipse 设计器

    是否有任何 Eclipse 插件可以让我像 Visual Studio 一样在网页上拖放 JSF 组件 这样我就不用写了
  • 是否可以反序列化 Avro 消息(使用来自 Kafka 的消息)而不在 ConfluenceRegistryAvroDeserializationSchema 中提供 Reader 模式

    我在 Apache Flink 中使用 Kafka Connector 来访问由汇流卡夫卡 除了 schema 注册表 url 之外ConfluentRegistryAvroDeserializationSchema forGeneric
  • 动态打开Javascript中定义的radwindow

    客观的 从服务器端 我需要在 IF 条件下自动打开一个 radwindow 在 aspx 页面的 JavaScript 中定义 使用的代码 在 aspx 页面中 我将 radwindow 定义为
  • 在 dplyr 中使用动态位置数创建滞后/超前变量

    我正在寻找一种方法来生成从具有动态位置数的滞后列派生的列 参数n 这意味着这个新列应该作为参数n存储在另一列中的值 参见lag文档功能 样本数据 set seed 42 df lt as tibble data frame id c rep