多个组的可反应聚合函数

2024-03-29

使用 Rreactable包中,我试图使用两个 groupBy 变量显示标记读数的百分比。在较低级别的分组中,这是计算正确的百分比。但在分组的第二(外部)级别上,它没有显示正确的百分比。

这是数据:

dat <- structure(list(Date = structure(c(1592611200, 1592611200, 1592611200,
                                         1592611200, 1592697600, 1592697600,
                                         1592697600, 1592697600, 1592784000,
                                         1592784000, 1592784000, 1592784000,
                                         1592870400, 1592870400, 1592870400,
                                         1592870400, 1592956800, 1592956800,
                                         1592956800, 1592956800, 1593043200,
                                         1593043200, 1593043200, 1593043200,
                                         1593129600, 1593129600, 1593129600,
                                         1593129600, 1593216000, 1593216000,
                                         1593216000, 1593216000, 1593302400,
                                         1593302400, 1593302400, 1593302400,
                                         1593388800, 1593388800, 1593388800,
                                         1593388800), 
                                       tzone = "UTC", class = c("POSIXct", "POSIXt")), 
                      variable = c("Incoming Reading 1", "Outgoing Reading 1", "Incoming Reading 2", "Outgoing Reading 2", "Incoming Reading 1",
                                     "Outgoing Reading 1", "Incoming Reading 2", "Outgoing Reading 2", "Incoming Reading 1", "Outgoing Reading 1",
                                     "Incoming Reading 2", "Outgoing Reading 2", "Incoming Reading 1", "Outgoing Reading 1", "Incoming Reading 2",
                                     "Outgoing Reading 2", "Incoming Reading 1", "Outgoing Reading 1", "Incoming Reading 2", "Outgoing Reading 2",
                                     "Incoming Reading 1", "Outgoing Reading 1", "Incoming Reading 2", "Outgoing Reading 2", "Incoming Reading 1",
                                     "Outgoing Reading 1", "Incoming Reading 2", "Outgoing Reading 2", "Incoming Reading 1", "Outgoing Reading 1",
                                     "Incoming Reading 2", "Outgoing Reading 2", "Incoming Reading 1", "Outgoing Reading 1", "Incoming Reading 2",
                                     "Outgoing Reading 2", "Incoming Reading 1", "Outgoing Reading 1", "Incoming Reading 2", "Outgoing Reading 2"), 
                      reading = c(60, 55, 60, 72,
                                  61, 56, 60, 71,
                                  62, 55, 61, 72,
                                  61, 54, 60, 71,
                                  62, 53, 60, 72,
                                  61, 52, 59, 71,
                                  60, 51, 60, 72,
                                  62, 50, 60, 71,
                                  61, 55, 61, 72,
                                  62, 56, 60, 70),
                      in_spec = c (1, 1, 1, 1,
                                   1, 1, 1, 1,
                                   1, 1, 1, 1,
                                   1, 1, 1, 1,
                                   1, 0, 1, 1,
                                   1, 0, 0, 1,
                                   1, 0, 1, 1,
                                   1, 0, 1, 1,
                                   1, 1, 1, 1,
                                   1, 1, 1, 1),
                      category = c("reading_1", "reading_1", "reading_2", "reading_2",
                                   "reading_1", "reading_1", "reading_2", "reading_2",
                                   "reading_1", "reading_1", "reading_2", "reading_2",
                                   "reading_1", "reading_1", "reading_2", "reading_2",
                                   "reading_1", "reading_1", "reading_2", "reading_2",
                                   "reading_1", "reading_1", "reading_2", "reading_2",
                                   "reading_1", "reading_1", "reading_2", "reading_2",
                                   "reading_1", "reading_1", "reading_2", "reading_2",
                                   "reading_1", "reading_1", "reading_2", "reading_2",
                                   "reading_1", "reading_1", "reading_2", "reading_2")),
                 row.names = c(NA, -40L), class = c("tbl_df", "tbl", "data.frame"))

在该数据中,1in_spec列表示读数在可接受的范围内。如果为0,则超出指定范围。当数据进入时,它会被标记为符合或不合格。

这是我到目前为止的代码:

library(reactable)

reactable(dat[, c("Date", "variable", "reading",
                                  "category", "in_spec")],
          columns = list(in_spec = colDef(name = "In Spec",
                           aggregate = JS("function(values, rows) {
                                            var totalReadings = 0;
                                            var inSpecReadings = 0;
                                            rows.forEach(function(row) {
                                              if(row['in_spec'] == 1) {
                                                inSpecReadings += 1;
                                              }
                                              totalReadings += 1;
                                            })
                                            return (inSpecReadings / totalReadings);
                                          }")
                           )
          ),
          groupBy = c("category", "variable"))

Here is the current output: Reactable Table

在 Reading_1 和 Reading_2 类别中,每个变量都显示符合规格的读数的正确百分比。然而,在最外层,每个类别都没有计算我需要的百分比。在每个类别中,我希望它计算符合规格的读数总数和读数总数。然后应将总规格除以读数总数。

在此示例中,第一组 (reading_1) 有 16 个符合规格的读数和 20 个总读数,因此我希望它显示 0.8。第二组 (reading_2) 有 19 个符合规格的读数和 20 个总读数,因此我希望它显示 0.95。

我认为编写自定义聚合函数是解决此问题的正确方法,但我不确定。我愿意dplyr解决方案之外reactable打电话,但我不想失去个人的阅读价值,所以总结可能行不通。


获得所需内容的一个简单方法就是更改aggregate to "mean"

reactable(dat[, c("Date", "variable", "reading",
                  "category", "in_spec")],
          columns = list(in_spec = colDef(name = "In Spec",
                                          aggregate = "mean")),
          groupBy = c("category", "variable"))

如果你想在dplyr你必须有两个不同的group_by语句和两个不同的变量。

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

多个组的可反应聚合函数 的相关文章

  • 在 Shiny 中设置一个绘图缩放以匹配另一个绘图缩放

    我正在尝试使用情节重排获取一个图的 x 轴缩放限制 并将它们应用到 Shiny 中的另一个图 到目前为止 我可以从 plot1 x轴限制 获取相关的plotly relayout数据 将其转换 从数字到日期 并在绘制 plot2 之前将其提
  • 如果“testthat”测试在“R”中失败,则打印自定义诊断信息

    I use a testthat单元测试来检查是否data frame函数返回的结果与我期望它返回的结果相同 如果测试失败 testthat打印一些诊断信息 例如 MyFunction df orig is not identical to
  • 将summary()写入as.data.frame以在ggplot / R中使用

    请查找 af 数据样本t below 我正在使用以下方法进行竞争风险分析etmCIF来自etm package 产生以下结果 这很好 但需要更好的图形 曾经有一个ggtrans etm函数将数据导入ggplot 然而 这个功能显然被删除了
  • 用于清除工作空间和转储存储的 R 全局函数

    我希望创建一个全局函数来清除我的工作区并转储我的内存 我将我的函数称为 cleaner 并希望它执行以下代码 remove list ls gc 我尝试在全局环境中创建该函数 但是当我运行它时 控制台仅打印该函数的文本 在我要获取的函数文件
  • 将 JSON URL 转换为 R 数据帧

    我在将 JSON 文件 从 API 转换为 R 中的数据帧时遇到问题 例如 URL 我尝试了 S O 的一些不同建议 包括将json数据转换为R中的数据框 https stackoverflow com questions 28683769
  • R-了解 akima::interp 结果中的 NA 值

    我有以下数据框 ref dat k Intensity Slope 1 0 021467214 33 16 2 0 012444759 33 8 3 0 006079156 33 4 4 0 003792025 33 2 5 0 02276
  • 如何使用 R 中带引号的字符值内的序列读取 CSV?

    这是一个包含两个字符列的 CSV 文件 key value a 所有字符值都用双引号引起来 并且有一个顺序 在值之一内 转义引号加分隔符 我无法通过 read csv readr 中的 read csv 或 data table 中的 fr
  • 如何获得属于五分位数的x?

    我正在大学学习使用 R 进行计量经济学项目 所以请原谅我的笨拙 基本上 使用并给出 一个矩阵 股票价格 行 天 列 公司股票价格 另一个矩阵 市值 行 天 列 公司市值 我必须收集第三个矩阵每天观察的属于市值分布第一五分位数的股票价格 然后
  • R.matlab/readMat:readTag(this) 中出错

    我正在尝试使用 R matlab 将 matlab 文件读入 R 但遇到此错误 require R matlab r lt readMat file mat verbose T Trying to read MAT v5 file stre
  • 从 R 中的 HTTPS 连接逐行读取

    当创建连接时open r 它允许逐行读取 这对于批量处理大数据流非常有用 例如这个脚本 https gist github com jeroenooms d33a24958d99bb969ac0通过一次读取 100 行来解析相当大的 gzi
  • R 更改小数位且不四舍五入

    gt signif 1 89 digits 2 1 1 9 我想要1 8 这有点笨拙 但它会起作用并保持所有数字 x lt 1 829380 trunc dec lt function x n floor x 10 n 10 n Resul
  • 逻辑回归/二项式的 glmnet 误差

    当尝试将 glmnet 与 family binomial 配合以进行逻辑回归拟合时 出现此错误 gt data lt read csv DAFMM HE16 matrix csv header F gt x lt as data fram
  • 将数据从 R 导出到 Excel

    我试图将从 R 获得的一些结果导出到 Excel 中 但未成功 我尝试过以下代码 write table ALBERTA1 D ALBERTA1 txt sep t write csv ALBERTA1 ALBERTA1 csv your
  • glmnet 未从 cv.glmnet 收敛 lambda.min

    我跑了20倍cv glmnet套索模型以获得 lambda 的 最佳 值 但是 当我尝试重现结果时glmnet 我收到一个错误 内容如下 Warning messages 1 from glmnet Fortran code error c
  • R:表格格式

    我有一个包含以下列的 Excel 文件 Column1 Column2 Column3 ab bb 0 5 ab bc 0 1 ab cd 0 7 ab dd 0 8 ac bb 0 2 ac bg 0 8 ac ee 0 8 ac dd
  • 如何计算嵌套函数中的粘合表达式?

    我正在尝试嵌套一个函数 该函数将两个字符串粘合在一起 该函数使用组合字符串来命名数据帧的列 然而 问题似乎是粘合表达式没有足够早地评估为字符串 我可以 并且应该 强制在将表达式作为参数传递给另一个函数之前对其进行求值吗 library ti
  • R:将 JSON 时间格式转换为 POSIX

    我有一个 JSON 字符串 并将其放入数据框中 我能够做到这一点 但我在使用 apply 函数之一将所有时间字符串转换为 POSIX 格式时遇到问题 See here https stackoverflow com questions 90
  • 16 位以上整数的计算

    我有两个大整数 两者都超过 16 位 确切地说是 20 位 而且我知道由于双精度浮点运算 我在使用这些数字进行计算甚至将它们存储在变量中 独立于编程语言 时受到限制 不过 我想也许gmp图书馆应该处理它们 但不幸的是它没有 可以计算更大的整
  • ggplot2、R 中的单条形条形图

    我有以下数据和代码 gt ddf var1 var2 1 aa 73 2 bb 18 3 cc 9 gt gt dput ddf structure list var1 c aa bb cc var2 c 73L 18L 9L Names
  • 具有 dplyr、tidyverse 和 broom 的相关矩阵 - P 值矩阵

    全部 我想使用以下方法从相关矩阵中获取 p 值dplyr 和 或扫帚包 并同时测试多个变量 我知道其他方法 但 dplyr 对我来说似乎更简单 更直观 此外 dplyr 需要关联每个变量以获得特定的 p 值 这使得该过程更容易 更快 我检查

随机推荐

  • 在浏览器控制台中使用 Angularjs $http

    我在开发过程中在浏览器控制台中测试了 AngularJS 服务 以进行快速验证 我将服务注入控制台的方式如下所述这个问题 https stackoverflow com a 15529185 605840 or var inj angula
  • 使用字典中的特定键构建列表(python)?

    我正在用 Python 实现 Dijkstra 搜索算法 在搜索结束时 我使用前驱图重建最短路径 从目标节点的前驱开始 例如 path path append destination previous predecessor map des
  • 如何在 Selenium 中的 HTML5 Canvas 上执行鼠标滚轮滚动?

    我正在开发 GWT 应用程序 类似于 Paint 在此 我有一个 HTML5 Canvas 其中有一个功能 向上和向下滚动鼠标滚轮将放大和缩小画布 我进行了很多搜索 但没有找到解决此问题的解决方法 这是所做的 int PosX 0 int
  • 系统('php -l')的替代品?

    在我目前正在从事的一个项目中 我们正在考虑放置system http php net system进入 php ini 的disable functions http php net disable functions宣言 现在 我们的一个
  • SwiftUI - ObservableObject 创建多次

    我在视图中创建了一个 ObservableObject ObservedObject var selectionModel FilterSelectionModel 我在里面放置了一个断点FilterSelectionModel s ini
  • Apache Maven 资源插件排除目录

    我试图在构建过程中将一些资源从一个点复制到另一个点 因此我使用 Apache Maven 资源插件 实际上我排除了一些文件 我不需要 但我还想排除一个目录 我尝试了几种方法但没有成功
  • 使用位置 Azure Data Lake 创建 Databricks SQL 数据库

    如何在 Databricks hive 元存储中使用位置 adls 和 abfss 创建数据库 无需安装 像这样的东西 create database if not exists adb raw location abfss con ema
  • 如何从 Vega Lite 图表中删除轴线

    我想从下面的 vega lite 图表中删除 隐藏轴线 我尝试将颜色更改为空 如下所示 或其他颜色 但这不起作用 https vega github io editor gist fc799bc9f7a8f28b8f1f2ec84673e9
  • android + eclipse + maven + actionbarsherlock

    我读了很多关于 actionbarsherlock maven android 的东西 但我见过的解决方案都不适合我 我确信我已经非常接近解决方案 但我不明白 我需要一些帮助 所以这是我的问题 我尝试创建一个依赖于 Actionbarshe
  • 如何删除空值?

    如何删除底部计数中的空值 即 我只想查看实际销售单位的产品 我尝试过非空和非空但没有成功 with member Measures Amount Sold as Measures Internet Sales Amount format s
  • 为什么“超时”不适用于管道?

    以下命令行调用timeout 这没有意义 只是出于测试原因 无法按预期工作 它会等待 10 秒 并且在 3 秒后不会停止命令的运行 为什么 timeout 3 ls sleep 10 您的命令正在执行的操作正在运行timeout 3 ls并
  • 在 Windows 上的 XAMPP 中哪里可以更改 lower_case_table_names=2 的值?

    我正在使用 Windows 7 和 XAMPP 我正在尝试导出数据库 在此过程中表名称将转换为小写 我搜索了很多 我知道我必须改变的值lower case table names from 0 to 2 但是我必须在哪里更改这个值 在哪个文
  • 将 TypeScript 网站从 GitHub 部署到 Azure

    我有一个 NET 网站 其中包含一些 TypeScript 文件 我尝试将其从 GitHub 部署为 Azure 网站 但收到与 TypeScript 相关的错误 在我看来 这可能与我使用最新版本 1 0 有关 而 kudu 版本只有 0
  • Google 端点和公共 Api 密钥

    要使用 Google 服务 您可以使用 OAuth 身份验证 或者 如果您不需要用户登录 则可以使用公共 api 密钥 将授权域定义为请求的来源 现在 我正在使用 google 端点编写自己的 API 并且我将允许用户通过公共 api 密钥
  • 使用sessionStorage有什么好处? [复制]

    这个问题在这里已经有答案了 只是想知道在存储要在 Javascript 轮播中使用的 HTML 内容时使用 HTML5 的 sessionStorage 的实际好处是什么 与性能有关吗 加载时间 带宽 是的 您将使用更少的带宽 这会提高性能
  • 使用 ggdendro 在树状图的片段下显示变量标签

    我的问题与安德里的有关answer https i stack imgur com JW0m1 png我之前的问题 我的问题是是否可以在树状图的相应段下显示变量标签和汽车标签 library ggplot2 library ggdendro
  • 扩展 Android 的默认 Gmail/电子邮件应用程序

    我想通过插入 ContentProvider 或使用意图过滤器来扩展 Android 平台的默认 Gmail 电子邮件应用程序 本质上 我希望能够扫描传入的电子邮件以查找将在我的 Android 应用程序中触发事件的特殊规则 如果自动扫描电
  • 立即终止无循环线程,无需中止或挂起

    我正在实现一个协议库 这里有一个简化的描述 main 函数中的主线程将始终检查网络流 在 tcpclient 内 上是否有某些数据可用 假设响应是收到的消息 线程是正在运行的线程 thread new Thread new ThreadSt
  • 在 Sparklyr 中创建虚拟变量?

    我正在尝试扩展我的一些 ML 管道 我喜欢 Sparklyr 打开的 rstudio spark 和 h2o 的组合 http spark rstudio com http spark rstudio com 我试图弄清楚的一件事是如何使用
  • 多个组的可反应聚合函数

    使用 Rreactable包中 我试图使用两个 groupBy 变量显示标记读数的百分比 在较低级别的分组中 这是计算正确的百分比 但在分组的第二 外部 级别上 它没有显示正确的百分比 这是数据 dat lt structure list