使用 ddply 进行 cumsum

2023-12-27

我需要在级别中使用 group by 与 ddply 或aggregate(如果更容易的话)。我不太确定如何执行此操作,因为我需要使用 cumsum 作为聚合函数。这是我的数据的样子:

level1      level2  hour     product 
A           tea     0          7
A           tea     1          2
A           tea     2          9
A           coffee  17         7
A           coffee  18         2
A           coffee  20         4
B           coffee  0          2
B           coffee  1          3
B           coffee  2          4
B           tea     21         3
B           tea     22         1

预期输出:

A     tea     0   7
A     tea     1   9
A     tea     2   18
A     coffee  17  7
A     coffee  18  9
A     coffee  20  13
B     coffee  0   2
B     coffee  1   5
B     coffee  2   9
B     tea     21  3
B     tea     22  4

我尝试使用

ddply(dd,c("level1","level2","hour"),summarise,cumsum(product))

但这并没有总结出我认为是因为小时列被用于分组依据并且它被分割了..我认为..我不确定我完全理解聚合在这里是如何工作的。有什么方法可以使用聚合或 ddply 获得所需的输出吗?


这是在 R 基础上使用的解决方案ave and within:

within(mydf, {
  cumsumProduct <- ave(product, level1, level2, FUN = cumsum)
})
#    level1 level2 hour product cumsumProduct
# 1       A    tea    0       7             7
# 2       A    tea    1       2             9
# 3       A    tea    2       9            18
# 4       A coffee   17       7             7
# 5       A coffee   18       2             9
# 6       A coffee   20       4            13
# 7       B coffee    0       2             2
# 8       B coffee    1       3             5
# 9       B coffee    2       4             9
# 10      B    tea   21       3             3
# 11      B    tea   22       1             4

当然,如果您想删除现有的产品列,可以将命令更改为以下内容以覆盖当前的“产品”列:

within(mydf, {
  product <- ave(product, level1, level2, FUN = cumsum)
})

您当前的方法部分不起作用,因为您已将“小时”作为分组变量之一。换句话说,它认为“A + tea + 0”的组合与“A + tea + 1”不同,但从您期望的输出来看,您似乎只是希望“A + tea”的组合成为团体。

aggregate不会像你期望的那样工作,因为它会将所有内容压缩成一个data.frame行数与“level1”和“level2”的唯一组合的数量相同,在本例中为 4 行。聚合列将是list。这些值是正确的,但用处不大。

Here's aggregate及其输出:

> aggregate(product ~ level1 + level2, mydf, cumsum)
  level1 level2  product
1      A coffee 7, 9, 13
2      B coffee  2, 5, 9
3      A    tea 7, 9, 18
4      B    tea     3, 4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ddply 进行 cumsum 的相关文章

  • RStudio 在临时目录中从 Rmarkdown 创建 PDF 文件

    我使用 RStudio 和 Rmarkdown 来创建报告 由于某种原因 使用 Knit 按钮会导致它仅在某个临时目录中创建 从命令输出来看 似乎 pandoc 本身被指示这样做 我觉得这很奇怪 usr lib rstudio bin pa
  • rmarkdown 中的内部链接不起作用

    我使用 rmarkdown 来渲染 pdf 文档 现在我想在文本中添加内部链接 在帮助页面中降价 http rmarkdown rstudio com authoring pandoc markdown html links 它说内部链接定
  • 计算级别内的值

    我在 R 中生成了一组级别cut 例如假设 0 到 1 之间的小数值 分为 0 1 个区间 gt frac lt cut c 0 1 breaks 10 gt levels frac 1 0 001 0 1 0 1 0 2 0 2 0 3
  • Quarto/Rmarkdown 中的美人鱼图:狭窄且模糊

    我正在尝试生成 pdf 格式的四开文档 稍后会生成 word 格式 我遇到了美人鱼图的问题 请在下面找到一个示例 qmd 文件来说明该问题 所以首先它应该支持 mermaid 标签 但当我这样做时 我无法在 rstudio 中 运行 单元
  • R 中大型稀疏矩阵的聚类分析

    我有一个包含 250000 笔交易 行 和 2183 项 列 的交易数据集 我想将其转换为稀疏矩阵 然后对其进行分层聚类 我尝试了包 sparcl 但它似乎不适用于稀疏矩阵 关于如何解决这个问题有什么建议吗 或者我可以使用任何其他包对稀疏矩
  • 包检查时如何有效处理未压缩的保存?

    在最近开发一个包的过程中 我将数据集包含在data 我的包的文件夹 在我的具体情况下 我有 5 个数据集 所有这些数据集都位于data table格式 尽管我在下面描述的问题仍然存在 如果我将它们保留为data frame 我已将每个人单独
  • udunits2 R 安装:找不到 udunits2.h

    我正在尝试在 R 中安装 udunits2 以满足对ggforce包裹 但是 安装程序在检查 udunits2 时始终失败 我已经尝试过中的说明this https stackoverflow com questions 47059517
  • R 中 write.table 文件名中的变量

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

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

    我正在尝试逐行读取 csv 文件 并且仅选择左侧的第二个和第三个单元格以及右侧的第三个单元格 例如 如果这一行中有 17 个单元格 我将选取第 15 个单元格 然后我想合并这 3 个单元格 用逗号分隔 然后将此行写入一个新的 csv 文件
  • 在捕食者-被捕食者系统的生态建模中正确使用 deSolve

    我有一个捕食者 被捕食者模型 其中包含指定的参数和初始值 我在这里用两种方法求解微分方程 1 使用 for 循环 2 使用 deSolve 包 我相信 for 循环是正确的 并且应该给出如下图所示的输出 For loop attempt r
  • 带有嵌套分组变量的多行轴标签,用于 - R 中的堆积条形图

    我想使用 ggplot 制作一个包含多个类别的堆叠条形图 并带有嵌套的标记 X 轴 类似于我使用 Excel 制作的条形图 如此处所示 我尝试使用给出的例子here https stackoverflow com questions 181
  • 当子集长度为零时,如何简洁地处理子集?

    从向量中排除元素x x lt c 1 4 3 2 我们可以减去位置向量 excl lt c 2 3 x excl 1 1 2 这也是动态工作的 excl lt which x which max x gt quantile x 25 1 2
  • 在 Linux 下更改 RStudio 用户界面(不是图形等)中的字体大小

    This is not关于更改使用 RStudio 生成的图表中的字体大小的问题 我已经知道该怎么做了 我在配备 视网膜 显示屏的 MacBook Pro 上的 Linux 下使用 RStudio 我使用 KDE 作为我的窗口管理器 我可以
  • 通过 RCpp 返回 NA

    新手 RCpp 问题在这里 How can I make a NumericVector returnNA到R 例如 假设我有一个 RCpp 代码 它分配NA到向量的第一个元素 RCpp export NumericVector myFun
  • R:如何更改ggvis闪亮应用程序中特定范围的绘图背景颜色

    I have a simple shiny app like below and you can run it The plots are created by ggvis and user can choose student name
  • 绘制带有颜色渐变的geom_segment线? (或者还有另一种方法来强调开始与结束吗?)

    我的数据框中有大量行 100 000 的两组纬度和经度变量 我正在尝试绘制一个连接这两组坐标的图 即 从纬度1 经度1 to 纬度2 经度2 使用 geom segment 使用非常低的 alpha 使线条透明 因为线条太多 我想强调这些线
  • 替换rmarkdown/knitr/pdf中字幕的自动编号

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

    我有一个数据框如下 head newStormObject FATALITIES INJURIES PROPVALDMG CROPVALDMG EVTYPE total 1 0 15 2 5e 05 0 TORNADO 15 2 0 0 2
  • R 在安装包依赖项时不考虑最大版本

    假设我正在开发一个名为magicr做一些统计魔术 我希望它使用另一个名为的包中的函数fairydust 假设 存在于 CRAN 上 很遗憾fairydust刚刚向 CRAN 发布了 2 0 0 版本 完全破坏了我计划使用的功能 所以我更新了

随机推荐

  • 有没有办法获取unix套接字连接另一端的uid

    有没有办法让 UNIX 域套接字侦听器仅接受来自特定用户的连接 chmod chown不适用于抽象套接字 afaik 或者换句话说 获取传入连接的 uid 在 Linux 上 Dbus 在Linux上使用抽象unix socket 有一个功
  • 如何在数组中搜索子字符串匹配项?

    我需要在 JavaScript 中搜索数组 搜索将仅匹配字符串的一部分 因为字符串将包含其他组件 然后我需要返回成功匹配的数组元素和完整字符串 Example const windowArray item thing id 3 text c
  • Android Seekbar - 只允许用拇指进行更改?

    我有一个搜索栏 我只想允许用拇指 手柄部分进行更改 如果用户点击其他任何地方 我希望忽略该点击 是否有固有的属性可以做到这一点 如果没有 我已经知道我可以设置一个 onTouch 监听器并返回true 禁用 它 但是有没有办法检测拇指何时被
  • 打字稿和 d3

    我有一个使用 d3 库的应用程序 在打字稿代码中 为了成功使用 d3 即 没有编译器错误 TS2686 d3 引用 UMD 全局 但当前文件是模块 我必须包含以下行 import as d3 from d3 问题是它会发出 require
  • QT,如何聚焦虚拟键盘,并使用键盘控制虚拟键盘

    我在嵌入式设备上使用Qt5的虚拟键盘 没有鼠标 键盘不是完整的PC键盘 而是只有十一个键 包括上 下 左 右 enter esc 所以我想专注于虚拟键盘 并使用上 下 左 右 回车来控制虚拟键盘 模拟鼠标点击虚拟键 怎么做 doc qt i
  • 如何使用 winmerge 行过滤器忽略包含特定单词的行?

    我有许多文件包含以下类型的行 version Revision 1 xxx 我希望在使用 winmerge 进行比较时忽略这种类型的行 我尝试过使用线路滤波器 但是 直到无法做到这一点 有人可以在这方面帮助我吗 你实际上可以这样做线路滤波器
  • 如何获取 Facebook 用户的信息并将其插入数据库?

    我不知道如何问它 但我正在尝试自学如何创建一个使用图形 api 的程序 我见过的大多数教程都是较旧的 我不知道它们现在有多相关 本质上 我试图获取有人点击我的应用程序的 东西 它说 这个应用程序需要您的用户名等 然后允许或不允许 我希望它获
  • 在组合键中使用 JPA AttributeConverter 时,Spring-data/hibernate 查询中不支持 JPA AttributeConverter

    这是我的枚举 public enum FooBarType Foo Bar javax persistence Converter public static class Converter implements AttributeConv
  • java / Android 一个进度条下载多个文件

    我在 for 循环的帮助下在 AsyncTask 中下载多个文件 下面的代码工作正常 但下载的每个文件都有自己的单个进度条 我只想为所有下载的文件提供一个进度条 ProgressDialog for downloading images O
  • 在 PowerBI 中使用 ALLEXCEPT 实现分组百分比的问题

    我想获得一个分组百分比作为新列或新度量 这是我在论坛中读到的内容推荐的 我有一个数据 用户将使用切片器来获取各种百分比 然而 目前我的查询一直失败 我访问过论坛 但似乎不知道如何分组并获取组的百分比 此外 我无法使用查询编辑器中的分组依据工
  • 以 JSON 格式将数据从 Kafka Topic 推送到 PostgreSQL

    更新后出错 2019 07 29 12 52 23 301 INFO Initializing writer using SQL dialect PostgreSqlDatabaseDialect io confluent connect
  • Joomla 如何自定义主菜单

    我正在学习 joomla 并面临下一个问题 这是 HTML 格式的主菜单 ul li class active a href home a li li a href bio a li li a href news a li li a hre
  • 反向特征查找?

    我一直在寻找解决以下问题的设计 需要几句话来描述 我们有四种类型 A1 A2 B 和 C 我们想编写一个函数 fn 它以类型 P 作为参数 使用特征 P 在 A1 A2 B C 内解析为 PA1 PA2 PB PC fn 的实现对于 PA1
  • 如何计算硬币问题的可能组合

    我正在尝试实现一个硬币问题 问题规范是这样的 创建一个函数来计算可用于给定金额的所有可能的硬币组合 All possible combinations for given amount 15 coin types 1 6 7 1 1 1 1
  • TEdgeBrowser 弹出菜单/上下文菜单

    如何覆盖 TEdgebrowser 组件中的上下文菜单 财产检查员不为此提供活动 可以使用 Javascript 停用上下文菜单 该解决方案并未涵盖所有用例 对于我的问题来说已经足够了
  • ActiveSupport::Deprecation.silenced = true 对我不起作用?

    我的应用程序是使用 Ruby 1 8 7 和 Rails 2 3 11 开发的 我在运行 rake spec 时收到很多弃用警告 DEPRECATION WARNING ActiveSupport Dependencies load pat
  • .Net 4 中巨大的性能差异背后的原因是什么

    我只是在对红黑树进行一些研究 我知道 Net 4 0 中的 SortedSet 类使用 RedBlack 树 因此 我使用 Reflector 取出该部分并创建了一个 RedBlackTree 类 现在我正在这个 RedBlackTree
  • 带有 ssl-conf 的 Akka HTTPS (SSL) 服务器

    阿卡版本 阿卡2 4 7 https github com akka akka tree v2 4 7 阿卡特点 HTTPS服务器 支持 http doc akka io docs akka 2 4 7 scala http server
  • 如何使用canvas.toDataURL()在Adobe AIR中获取图像的base64?

    是否可以使用canvas toDataURL 在 Adob e AIR 中 当我尝试时 出现以下错误 Error SECURITY ERR DOM 异常 18 Adobe AIR 强制画布 API 中使用的图像具有相同的来源 一旦您在画布中
  • 使用 ddply 进行 cumsum

    我需要在级别中使用 group by 与 ddply 或aggregate 如果更容易的话 我不太确定如何执行此操作 因为我需要使用 cumsum 作为聚合函数 这是我的数据的样子 level1 level2 hour product A