使用 dplyr 创建一个具有滞后值作为数值向量的数据框

2023-12-27

我的数据如下

data <- data.frame(
  A = c(10,20,30,40,50,60,70,80,90,100),
  B = c(110,120,130,140,150,160,170,180,190,200)
)

我希望创建一个新列,按行从 A 列获取每个值,并将其与 B 列中的相应值以及 B 列中的滞后 3 个值连接起来,并将其存储在数字向量中。

最终数据如下:

    new_data <- data.frame(
  A = c(10,20,30,40,50,60,70,80,90,100),
  B = c(110,120,130,140,150,160,170,180,190,200),
  c = I(list(c(10,110,NA,NA,NA),c(20,120,110,NA,NA),c(30,130,120,110,NA),c(40,140,130,120,110),c(50,150,140,130,120),c(60,160,150,140,130),c(70,170,160,150,140),c(80,180,170,160,150),c(90,190,180,170,160),c(100,200,190,180,170))
))

在我的真实数据中,我需要捕获最多 200 个滞后值,因此需要手动输入list(A, lag(B),lag(B,2),lag(B,3)....这不是一条我想走的路。

我尝试使用 purrr::map 来实现我的结果,但我无法将滞后值放入我的向量中

data %>%
  rowwise() %>% 
  mutate(z = list(c(A,B,map_vec(1:3, ~lag(B,.x, default = NA)))))

最终目标是计算 A 列的每个值相对于当前行 + B 列的 3 个先前值的 Percentage_rank,以确定 A 的每个点是否为异常值,即 > 75%。

我的方法是在 C 列中创建一个值的数字向量,其中包含 A 的当前值和 B 中的 4 个值,将 dplyr::percent_rank 应用于每个向量并提取每个索引 = 1 值的百分比排名(A 列值)来获得值 A 的百分比排名。

您能提供的任何指导将不胜感激。


EDIT:新数据和变量lag-length

Set <- 3 # For e.g. all rows use "Set <- (nrow(data)-1)"

data %>% 
  mutate(setNames(data.frame(sapply(1:!!Set, \(x) 
    lag(B, x))), paste0("b", 1:!!Set))) %>% 
  rowwise() %>% 
  mutate(C = list(c_across(everything()))) %>% 
  select(-matches("b\\d+")) %>% 
  data.frame()
     A   B                       C
1   10 110     10, 110, NA, NA, NA
2   20 120    20, 120, 110, NA, NA
3   30 130   30, 130, 120, 110, NA
4   40 140  40, 140, 130, 120, 110
5   50 150  50, 150, 140, 130, 120
6   60 160  60, 160, 150, 140, 130
7   70 170  70, 170, 160, 150, 140
8   80 180  80, 180, 170, 160, 150
9   90 190  90, 190, 180, 170, 160
10 100 200 100, 200, 190, 180, 170

使用预rowwise lag多变的

library(dplyr)

df %>% 
  mutate(b = lag(B)) %>% 
  rowwise() %>% 
  mutate(C = list(c(A, B, b)), b = NULL) %>% 
  data.frame()
   A   B           C
1 10  60  10, 60, NA
2 20  70  20, 70, 60
3 30  80  30, 80, 70
4 40  90  40, 90, 80
5 50 100 50, 100, 90
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 dplyr 创建一个具有滞后值作为数值向量的数据框 的相关文章

  • 获取函数的命名空间

    我正在开发一个包 我希望在其中向对象添加编辑历史记录 该包允许其他包注册用于编辑对象的函数 我正在寻找一种方法来记录注册用于编辑的函数的包的版本 问题是 给定一个函数 如何从导出的位置获取包 我的想法是调查它的搜索路径 但是search 仅
  • 从 n,k 维矩阵数组中减去 n,k 维矩阵

    如果我有一个数组A A lt array 0 c 4 3 5 for i in 1 5 set seed i A i lt matrix rnorm 12 4 3 如果我有矩阵 B set seed 6 B lt matrix rnorm
  • 将字符串列拆分为多个虚拟变量

    作为 R 中 data table 包的相对缺乏经验的用户 我一直在尝试将一个文本列处理为大量指示符列 虚拟变量 每列中的 1 表示特定的子字符串是在字符串列中找到 例如我想处理这个 ID String 1 a b 2 b c 3 c 进入
  • R 可以创建带有可单击条形图的条形图图像以插入网页吗?

    我知道如何创建条形图 以及如何将其粘贴在网页上 例如 使用hwriteImage in the 作家包 http www embl de gpau hwriter 我想要的是每个栏都是一个在鼠标悬停时突出显示的区域 并且每个栏在单击时都有不
  • Quantmod 的简单功能不再起作用

    我明天要交论文 我收到了一条关于 quantmod 的非常奇怪的错误消息 这是我在过去几周使用这个包时从未遇到过的 我无法导入特定于道琼斯指数 DJI 的数据 我收到以下错误消息 getSymbols DJI src yahoo from
  • 列出 R 数据文件的内容而不加载

    我有时用print load myDataFile RData 当我加载数据文件时列出它的内容 有没有办法列出内容而不加载数据文件中包含的对象 我认为如果不加载对象就无法做到这一点 解决方案可能是使用包装器将 R 对象保存到save 该函数
  • 正态分布平均值的贝叶斯推理玩具 R 代码 [降雪量数据]

    我有一些降雪观测 x lt c 98 044 107 696 146 050 102 870 131 318 170 434 84 836 154 686 162 814 101 854 103 378 16 256 我被告知它遵循正态分布
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • 在R中循环子文件夹

    我正在 R 环境中包含多个子文件夹的文件夹中工作 我想要循环遍历多个子文件夹 然后在每个子文件夹中调用 R 脚本来执行 我想出了下面的代码 但我的代码似乎添加了 到子文件夹列表 我收到错误 文件中的错误 文件名 r 编码 编码 无效的 描述
  • picker输入字体或背景颜色

    我在闪亮的仪表板中使用 pickerInput 这很好 除了一个问题 背景颜色和字体颜色太相似 使得过滤器选择难以阅读 有什么办法可以改变背景或字体颜色吗 如果可能的话 我想继续使用 pickerInput 但如果有一个带有 selectI
  • 绘制 Cox 回归的 Kaplan-Meier 图

    我使用 R 中的以下代码设置了一个 Cox 比例风险模型来预测死亡率 添加协变量 A B 和 C 只是为了避免混淆 即年龄 性别 种族 但我们真正对预测变量 X 感兴趣 X 是一个连续变量 cox model lt coxph Surv t
  • 如何纠正 data.frame 上的字符编码

    我有一个像这样的数据框 data names lt data frame DATA c 1 5 rownames data names lt c IV xc1N JOS xc9 LUC xcdA RAM xd3N TO xd1O data
  • `dplyr::_join` 函数的命名向量“by”参数[重复]

    这个问题在这里已经有答案了 我正在写一个函数dplyr join两个数据框by不同的列 第一个数据帧的列名称动态指定为函数参数 我相信我需要使用rlang准引用 元编程 但未能找到可行的解决方案 我很感激任何建议 library dplyr
  • 在 R 的 for 循环中创建动态命名对象并分配动态值

    我正在尝试创建一套动态命名的新对象 例如 temp2015 使用 for 循环 并存储动态值 具体来说 其他对象的名称 例如 Y2015 和 for 循环中使用的值 例如 2015 在动态命名的新对象中 我不确定为什么下面的代码不起作用 Y
  • 闪亮的应用程序包:css 和所有 www/ 目录内容

    我正在尝试将 Shiny 应用程序转换为 R 包 但我在处理有关 www 目录以及 松散 文件的所有问题时遇到了问题 我闪亮的应用程序运行得很好 但是当我尝试 打包它 时 它不起作用 我闪亮的应用程序目录 my shiny app R ut
  • R,使用具有两种以上可能性的二项式分布

    我知道这可能是基本的 但我似乎有一个心理障碍 假设您想要计算在一个骰子上掷出 4 5 或 6 的概率 在 R 中 这很简单 sum 1 6 1 6 1 6 这给出了 1 2 这是正确答案 然而 我内心深处 可能应该保留的地方 认为我应该能够
  • data.table 抛出“找不到对象”错误[重复]

    这个问题在这里已经有答案了 我有一个数据表 library data table mydt lt data table index 1 10 当我在全局环境中尝试它时 我可以让它工作 但当我在调试器中或在包测试中使用它时却无法工作 问题是我
  • dplyr:连接中的 NSE (by)

    我很难弄清楚如何使用 dplyr left join 和 NSE 连接两个表 问题是我无法为 by 提供正确的值 我想我现在已经找到了解决方案 但感觉我正在以一种额外复杂的方式来做 因此 如果您知道更简单 更优雅的解决方案 请告诉我 这就是
  • 从数据框中绘制多条平滑线

    我对 R 比较陌生 我正在尝试绘制从 csv 文件加载的数据框 数据由 6 列组成 如下所示 xval col1 col2 col3 col4 col5 第一列 xval 由一系列单调递增的正整数 例如 10 40 60 等 组成 其他列
  • R中IF函数的使用

    我正在短跑ifR 中的函数 但收到以下警告消息 In if runif 50 0 1 lt 0 69 the condition has length gt 1 and only the first element will be used

随机推荐

  • 使用 PHP 和 XPath 获取与正则表达式匹配的 href

    我有一个包含多个超链接的页面 我想要得到的格式如下 div a href 123 text2 a div div a href 345 text1 a a href 678 text2 a div 我想提取三个 href 123 345 和
  • 停止 jQuery Mobile 滑动事件双冒泡

    我在 iPad Safari 上安装了 jQuery Mobile 由于某种原因 触摸滑动事件会触发两次 就在本周 人们在过去的一年中报告了同样的问题 但我找不到如何在不修改 jQuery Mobile 的情况下修复双重事件的解释 我不想这
  • 通过坐标提取PDF文本

    我想知道 Microsoft NET 中是否有一些 PDF 库能够通过给出坐标来提取文本 例如 在伪代码中 PdfReader reader new PdfReader reader Load file pdf Top bottom lef
  • 如何通过WebApi上传图片

    我如何通过上传图像文件ASP NET Web API 我在文件模式下有一个输入标签 并将其发布到 API 如何将其保存到服务器文件夹 我尝试了这段代码 但它不起作用 private void UploadWholeFile HttpRequ
  • WCF Restful返回HttpResponseMessage想要在设置内容时进行协商

    我有一个 WCF Restful 服务 我想要返回 HttpResponseMessage 的方法 因为它看起来是结构化的 而不仅仅是返回数据或异常或其他可能到达那里的东西 我假设这是正确的 如果不让我知道 但我的问题是当我尝试设置时会发生
  • 使用空花括号初始化

    第一次尝试 一切正常 class Base public Base std cout lt lt default ctor n Base b Base b one 另一种实现方式 添加explicit class Base public e
  • 使用模板将一组成员函数声明为友元

    给出以下代码 class A struct B static void doIt A pa struct C static void doIt A pa class A int i 9 below works but requires a
  • 通过执行批处理文件/powershell脚本设置播放设备

    我已将计算机 Windows 7 连接到电视 并且经常在数字音频 S PDIF 高清音频设备 和耳机 2 Corsair CA HS1 USB 之间更改声音输出设备耳机 我希望能够执行一个为我更改此设置的批处理 脚本文件 这样我就不必 右键
  • 转换 .wav 文件中的 RTP 序列有效负载

    我有一个文本文件 其中包含 VoIP 对话的 RTP 数据包的有效负载 十六进制 有谁知道如何将文本转换为文件 使用 c c 的 wav 音频 PS 我使用的是 GNU Linux Thanks 我用 Java 做了同样的事情 这是我用于测
  • 设置 d3.curveBundle.beta 似乎没有效果

    d3 文档d3 curveBundle https github com d3 d3 shape blob master README md curveBundle提供了如何设置的示例beta https github com d3 d3
  • 在 Android 上从图像序列创建视频

    我想通过以下代码从图像序列 在 Android 上 创建视频 opencv core IplImage image cvLoadImage sdcard mytest testimage jpg FFmpegFrameRecorder re
  • 我可以在 rsync 调用中包含密码吗?

    我使用 rsync 来更新我的静态网站 我现在cd到本地网站目录 然后运行rsync命令 然后在下一行输入密码 我已经保存了我的rsync调用文本片段 这样 rs只是扩展到我的电话 有没有办法使用类似的东西 p在末尾标记并包含密码 我的电话
  • ActionBarCompat 下拉菜单上的单选按钮样式

    我正在开发一个使用扩展主题的应用程序 style Theme AppCompat Light DarkActionBar 在我的一项活动中 有一个操作栏图标 显示三个带有单选按钮的选项 以下是菜单 XML 文件的摘录
  • HTTP 标头样式表

    根据这个 http www w3 org TR html4 present styles html h 14 6 http www w3 org TR html4 present styles html h 14 6我可以直接在 http
  • Java ArrayList 中 contains 的使用

    如果我有一个 String 的 ArrayList 构成 Java 中类的一部分 如下所示 private ArrayList
  • Django REST如何设置节流周期以允许10分钟内一个请求?

    文件说该期间应该是以下之一 s sec m min h hour d day 我很好奇是否可以将时间设置为类似的内容1 10min 看着code https github com encode django rest framework b
  • Go 中的 strings.Split

    文件names txt由许多名称组成 其形式如下 KELLEE JOSLYN JASON INGER INDIRA GLINDA GLENNIS 有谁知道如何拆分字符串 使其成为用逗号分隔的单个名称 KELLEE JOSLYN JASON
  • 在编译时获取表达式类型

    编程时使用auto有时 了解编译器在编译时使用的类型会很方便 如果编译在我需要知道类型的地方中止 那并不重要 简单的例子 std vector lt int gt s 1 2 3 for auto elem s elem 5 for aut
  • 重构代码(如果是 else )

    我试图重构代码 发现了这段代码 您能否建议其中的任何重构 并请说出您使用的折射 private void setUpBag String language if language equals english add letters wit
  • 使用 dplyr 创建一个具有滞后值作为数值向量的数据框

    我的数据如下 data lt data frame A c 10 20 30 40 50 60 70 80 90 100 B c 110 120 130 140 150 160 170 180 190 200 我希望创建一个新列 按行从 A