以 dplyr 为单位的滚动总和

2024-03-08

set.seed(123)

df <- data.frame(x = sample(1:10, 20, replace = T), id = rep(1:2, each = 10))

对于每个id,我想创建一个列,其中包含前 5 个的总和x价值观。

df %>% group_by(id) %>% mutate(roll.sum = c(x[1:4], zoo::rollapply(x, 5, sum)))
# Groups:   id [2]
  x    id roll.sum
<int> <int>    <int>
 3     1        3
 8     1        8
 5     1        5
 9     1        9
10     1       10
 1     1       36
 6     1       39
 9     1       40
 6     1       41
 5     1       37
10     2       10
 5     2        5
 7     2        7
 6     2        6
 2     2        2
 9     2       39
 3     2       32
 1     2       28
 4     2       25
10     2       29

第 6 行应该是35 (3 + 8 + 5 + 9 + 10),第 7 行应该是33 (8 + 5 + 9 + 10 + 1)等等。

然而,上面的函数还包括行本身进行计算。我该如何修复它?


 library(zoo)
 df %>%  group_by(id) %>%
       mutate(Sum_prev = rollapply(x, list(-(1:5)), sum, fill=NA, align = "right", partial=F))  

#you can use rollapply(x, list((1:5)), sum, fill=NA, align = "left", partial=F) 
#to sum the next 5 elements scaping the current one 


     x id Sum_prev
 1   3  1         NA
 2   8  1         NA
 3   5  1         NA
 4   9  1         NA
 5  10  1         NA
 6   1  1         35
 7   6  1         33
 8   9  1         31
 9   6  1         35
 10  5  1         32
 11 10  2         NA
 12  5  2         NA
 13  7  2         NA
 14  6  2         NA
 15  2  2         NA
 16  9  2         30
 17  3  2         29
 18  1  2         27
 19  4  2         21
 20 10  2         19
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以 dplyr 为单位的滚动总和 的相关文章

  • ggplot:按组自动化的百分位线

    我找到了dplyr gt 运算符有助于简单的 ggplot2 转换 无需求助于ggproto 这是必需的ggplot2 扩展 http docs ggplot2 org dev vignettes extending ggplot2 htm
  • R:变换不规则时间字符串

    我有两个不同的时间序列 来自不同的数据帧 具有不同的不规则格式 但问题是相同的 我只想提取小时 分钟 秒和毫秒 时代系列看起来像这样 ts1 08 27 23 445 08 27 24 280 08 27 25 115 I tried st
  • Shiny 中的模态对话框:可以调整宽度但不能调整高度

    在我的 Shiny 应用程序中 我有几个来自闪亮BS 包的模式窗口 我可以像这样调整这些模式窗口的宽度 tags head tags style HTML modal lg width 1200px abs 1 background col
  • 来自 data.frame 每一列的随机样本

    我想从 a 的每一行中抽取随机样本data frame独立于其他行 这是一个例子 此代码为每行选择相同的列 但我需要为每行独立选择列 library plyr set seed 12345 df1 lt mdply data frame m
  • 根据值的运行总计创建组

    我的数据在一个变量 Y 上是唯一的 另一个变量 Z 告诉我每个 Y 中有多少人 我的问题是我想从这些 Y 和 Z 创建 45 人的组 我的意思是 每当运行总计Z 达到 45 创建一组 然后代码继续创建下一组 我的数据看起来像这样 ID X
  • 在 for 循环中绘制的多个 ggplot2 绘图的网格

    作为一个新的 ggplot2 用户 我对可能性的数量感到有点迷失 并且很难在网上找到我认为简单问题的简单答案 我想在同一张纸上显示 ggplot2 的多个图 但知道这些图来自 for 循环 以下示例无法编译 仅用于说明 for i in c
  • 在 Shiny 中使用 readlines(prompt = )

    我有一个代码 使用以下方式获取输入readlines prompt 功能 您能告诉我 Shiny 中的哪个输入函数足以将此代码适应 Shiny 应用程序吗 我需要一个交互功能 我无法使用简单的输入selectInput 因为我有很多read
  • 包检查时如何有效处理未压缩的保存?

    在最近开发一个包的过程中 我将数据集包含在data 我的包的文件夹 在我的具体情况下 我有 5 个数据集 所有这些数据集都位于data table格式 尽管我在下面描述的问题仍然存在 如果我将它们保留为data frame 我已将每个人单独
  • 正则表达式挑选括号之间的一些文本[重复]

    这个问题在这里已经有答案了 可能的重复 提取 R 中所有括号内的信息 正则表达式 https stackoverflow com questions 8613237 extract info inside all parenthesis i
  • R 中 write.table 文件名中的变量

    请帮助我解决一个幼稚的问题 已经用谷歌搜索 并尝试了很多变体 但失败了 如何使用 R 中 write table 的文件名中的变量保存文件 脚本循环遍历 dir 中的文件 应用一些函数 然后将结果保存到具有相同名称但附加结尾的文件中 谢谢
  • 如何判断某个软件包是否已经安装?

    当我安装 yaml 包时 如果之前已经安装过 RStudio 则会弹出一条烦人的错误消息 如何判断该软件包是否已安装 以便我可以在代码中决定是否安装该软件包 该消息位于弹出窗口中 内容如下 此安装将更新的一个或多个软件包 当前已加载 在更新
  • r Shiny 中的 fileInput 函数没有响应

    我是 R 和 R闪亮的新手 一直致力于构建一个统计应用程序 该应用程序将允许用户导入文件 然后对数据运行不同的统计程序 直到最近 fileData 函数一直对我来说运行良好 现在每当我尝试上传文件时 都不会打开任何内容 我已尝试了所有我能想
  • 通过 RSelenium 单击按钮

    我正在尝试使用 Rselarium 和 Rvest 来抓取 REI 的评论 吊床 我想点击底部的按钮 x 次 这样我就可以抓取所有评论 我有点失落 这是我到目前为止所拥有的 如果您也知道如何在取景器中预览您正在做的事情 而不是屏幕打印 那就
  • 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
  • 分割单个 SpatialPolygons 对象的多边形部分

    在 R 中 我有一个SpatialPolygons包含数百个多边形的对象 即多个多边形 我想分割这个SpatialPolygons对象放入列表中Polygons 即孔应保持连接到父多边形 知道如何做到这一点吗 EDITED 使用以下提供的示
  • 如何优化 R 中的 sapply 来计算数据帧上的运行总计

    我在 R 中编写了一个函数来按月份计算累积总数 但随着数据集变大 我的方法的执行时间呈指数增长 我是一名 R 程序员新手 你能帮我提高效率吗 该函数以及我调用该函数的方式 accumulate lt function recordnum d
  • 创建序列组合

    我正在尝试解决以下问题 考虑 5 个简单序列 0 100 100 0 rep 0 101 rep 50 101 rep 100 101 我需要 3 个数字变量的集合 它们的所有组合都具有上述序列 由于有 5 个序列和 3 个变量 因此可以有
  • 在 R Shiny 中显示/隐藏整个框元素

    我目前正在尝试找到一种方法来隐藏 显示 R Shiny 中的整个 box 元素 以及里面的所有内容 我想创建一个可能的按钮 它允许用户展开特定框 然后使用相同 甚至不同 的按钮隐藏它 我不想使用条件面板 因为我的应用程序非常大并且会产生一些
  • 如何处理包内部的 R 数据?

    我正在开发的 R 包需要多个 R 数据对象 例如预先计算的模型和参数 目前 我将包的 数据 目录中的每个对象放在单独的 RData 文件中 使用该包时 用户可以使用 数据 功能将这些对象附加到他们的环境中 我想要的行为是 在加载包时 数据对
  • 替换rmarkdown/knitr/pdf中字幕的自动编号

    我正在使用 Rmarkdown 生成 PDF 文档 我想在其中手动定义图号 下面是一个块的示例 r chunk26 fig cap Fig 5 3 My figure caption plot 1 1 我使用特殊的编号来遵循文档的章节 问题

随机推荐

  • 偏移日期时间解析

    需要从格式解析日期时间2016 06 24T13 39 44 687680 第一步使用 尝试用线路解析没有微秒的时间 System out println OffsetDateTime parse 2011 12 03T10 15 30 D
  • 使用 C++ 实现 Android 事件处理程序

    我有一个 Java 布局设计 目前正在通过 JNI 移植到 C 我实际上已经完成了这一点 但我目前对如何设置事件处理程序 例如 setOnClickListener 感到困惑 我已经经历过JNI规范 https docs oracle co
  • 快速解码 JPEG 图像的方法

    我需要解码 解压为位图 非常小的 大约 1200 1200 JPEG 问题是我需要尽快完成 我尝试过 libjpeg 但速度很慢 我也尝试过 BitmapFactory decodeByteArray 它有点快 但仍然不够快 还有什么其他选
  • 在哪里编辑 mysql 全文停用词列表?

    我看到mysql的全文停用词列表是英文的 考虑到 mysql 在全世界范围内使用 这有点奇怪 无论如何 我将 ft min word len 降低到 3 所以我需要将我的语言中的常用单词添加到此列表中 有人可以告诉我在哪里可以找到它吗 Th
  • Rails 3 日期时间比较与 ActiveRecord 查询中的日期

    我试图在模型中搜索等于特定日期的任何日期 同时忽略时间戳 在 Rails 中我可以简单地执行它DateTime to date somedate 但是我认为在 SQL 中制定起来并不那么容易 因为我无法将 to date 方法应用于整个列
  • S3 Lambda 在 10 分钟后触发双重调用

    我们遇到了由 S3 ObjectCreated Events 触发的 Lambda 的双重 Lambda 调用 那些双重调用发生exactly第一次调用后 10 分钟 不是第一次尝试完成后 10 分钟 而是第一次调用发生后 10 分钟 原始
  • 以随机顺序迭代数组[重复]

    这个问题在这里已经有答案了 给定一个序列N元素 比如std vector or T 是否有任何有效的方法可以按随机顺序迭代其元素 仅访问每个元素一次 该解决方案必须避免创建带有打乱索引的附加数组 EDIT 我们还需要能够跟踪原始索引 不是特
  • 将决策边界拟合到 R 中的逻辑回归模型

    我正在努力使用 ggplot 在 R 中绘制决策边界 我有两个变量 考试成绩 和一个学生是否被录取的二元分类 数据如下所示 gt head exam data Exam1Score Exam2Score Admitted 1 34 6236
  • addLoadEvent 无助于解决 onload 冲突

    我使用流行的 addLoadEvent 进行所有 JS 加载 如下所示 function addLoadEvent func var oldonload window onload if typeof window onload funct
  • 如何在 R kableextra 中将 kable 标题/标题居中,同时保持行左对齐

    我想让表格的标题 标题 居中 但列的值保留分配 我还希望我的标题被分成两行 并且每行都居中 align选项以相同的方式更改它们 head mtcars gt kbl caption first row second row align l
  • ggplot2 3.1.0 中的自定义 y 轴刻度和辅助 y 轴标签

    Edit 2 ggplot2 package 的当前开发版本确实解决了我在下面的问题中提到的错误 使用安装开发版本 devtools install github tidyverse ggplot2 Edit 这似乎是错误的行为sec ax
  • Rails、RVM、Apache、Passenger 错误 - SpawnManager 权限在 2.3.11 中被拒绝

    我使用 Passenger 时遇到以下错误 这似乎只有在使用 2 3 11 时才会出现问题 我怎样才能解决这个问题 Passenger ERROR ext common ApplicationPool SpawnManager h 220
  • 使用android和php进行套接字编程[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试创建一个使用套接字连接到
  • Yii:按 id ASC 选择最后 20 个条目

    我想获取表中最后 20 个条目 但按 ID 升序排序 在 Sql 中 这并不是很复杂 SELECT FROM SELECT FROM comments WHERE postID id ORDER BY id DESC LIMIT 20 t
  • 在节点中测试失败的请求

    我有一些代码如下所示 var request require request function Service this config require path to config json Service prototype doThin
  • MySQL 函数将工作日数添加到 DATETIME

    我需要一个 MySQL 函数 它允许我传递多个工作日 周一至周五 和开始日期或日期时间 对我的实现来说并不重要 并让它返回一个新的日期或日期时间多个工作日将来 例子 SELECT AddWorkDays 10 2013 09 01 假设 2
  • Angular IE9 文件上传不起作用

    我使用这种方式上传文件
  • 最好的 GRID 和 TREE 控件是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Angular 中重置 this.dataSource.filterPredicate

    我正在使用过滤器和选择mat table 为了使用 select 进行过滤 我在相关字段上使用过滤谓词 public applyFilter filterValue string this dataSource filterPredicat
  • 以 dplyr 为单位的滚动总和

    set seed 123 df lt data frame x sample 1 10 20 replace T id rep 1 2 each 10 对于每个id 我想创建一个列 其中包含前 5 个的总和x价值观 df gt group