使用 dplyr 计算组平均值,同时排除当前观察值

2023-12-04

Using dplyr(最好),我试图计算每个观察值的组平均值,同时从组中排除该观察值。

看来这应该可以通过组合来实现rowwise() and group_by(),但这两个功能不能同时使用。

给定这个数据框:

df <- data_frame(grouping = rep(LETTERS[1:5], 3),
                 value = 1:15) %>%
  arrange(grouping)
df
#> Source: local data frame [15 x 2]
#> 
#>    grouping value
#>       (chr) (int)
#> 1         A     1
#> 2         A     6
#> 3         A    11
#> 4         B     2
#> 5         B     7
#> 6         B    12
#> 7         C     3
#> 8         C     8
#> 9         C    13
#> 10        D     4
#> 11        D     9
#> 12        D    14
#> 13        E     5
#> 14        E    10
#> 15        E    15

我想获得每个观察值的组平均值,并将该观察值排除在组之外,结果是:

#>    grouping value special_mean
#>       (chr) (int)
#> 1         A     1          8.5  # i.e. (6 + 11) / 2
#> 2         A     6            6  # i.e. (1 + 11) / 2
#> 3         A    11          3.5  # i.e. (1 + 6) / 2
#> 4         B     2          9.5
#> 5         B     7            7
#> 6         B    12          4.5
#> 7         C     3          ...

我尝试过嵌套rowwise()在调用的函数内do(),但还没有让它发挥作用,沿着这些思路:

special_avg <- function(chunk) {
  chunk %>%
    rowwise() #%>%
    # filter or something...?
}

df %>%
  group_by(grouping) %>%
  do(special_avg(.))

无需定义自定义函数,我们可以简单地对组中的所有元素求和,减去当前值,然后除以每组的元素数减去1.

df %>% group_by(grouping) %>%
        mutate(special_mean = (sum(value) - value)/(n()-1))
#   grouping value special_mean
#      (chr) (int)        (dbl)
#1         A     1          8.5
#2         A     6          6.0
#3         A    11          3.5
#4         B     2          9.5
#5         B     7          7.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 dplyr 计算组平均值,同时排除当前观察值 的相关文章

随机推荐

  • 我应该使用“import os.path”还是“import os”?

    根据官方文档 os path是一个模块 那么 导入它的首选方式是什么 Should I always import it explicitly import os path Or Is importing os enough import
  • Laravel 3 中用户定义的 MySQL 变量?

    我想使用用户定义的变量更新一组具有序号的 MySQL 记录的 排名 以下查询通过 MySQL 命令行运行良好 SET rank 0 UPDATE scores SET rank rank rank 1 WHERE game id 4 ORD
  • 如何在表单提交后重置表单并启用提交按钮(react-formio)?

    我正在使用反应 formio包动态生成表单 我使用此链接生成了一个简单的登录表单 https codesandbox io s cra react formio iy8lz 构建后 它会创建一个 JSON 然后 我使用该 JSON 生成一个
  • sp_send_dbmail 附件编码

    我在 SQL2005 中使用 sp send dbmail 发送一封电子邮件 并将结果放在附件中 发送附件时 它是 UCS 2 编码的 我希望它是 ANSI 或 UTF 8 这是 SQL EXEC msdb dbo sp send dbma
  • LightSwitch v1 显示红色 X 并且无法加载数据

    我使用在 Visual Studio 2010 Professional 上运行的 Visual Studio LightSwitch 2011 v1 制作了一个应用程序 它是一个桌面应用程序 我使用 SQL Server 身份验证来连接到
  • 如何在文本和单选按钮之间添加空格?

    我想要文本和单选按钮之间有一个空格 为了实现这一点 我尝试了 css 类 answerBottomYesNo 通过添加 margin left 7px 由于某种原因它不起作用 下面是代码片段 div class questionRow od
  • 如何找到动态数组的大小[重复]

    这个问题在这里已经有答案了 有什么方法可以找到分配了多少字节RandomArray在这段代码中 include
  • JSoup HTTP 获取 URL 时出错。状态=405

    我想连接到https www notebooksbilliger de 但使用以下代码则不起作用 try Response response Jsoup connect url userAgent Mozilla ignoreContent
  • PHP 7.2 中未定义的函数 odbc_connect()

    我收到错误 致命错误 未捕获错误 调用未定义的函数 odbc connect Ive added the extension in php ini and phpinfo is confirming that the odbc driver
  • 取消排序:记住排列并撤消它

    假设我有一个函数 f 它接受向量 v 并返回一个新向量 其中元素以某种方式转换 它通过调用假设向量已排序的函数 g 来实现这一点 所以我希望 f 的定义如下 f v Module s r s Sort v remember the perm
  • 覆盖主页中最近添加的列表

    我想知道是否可以覆盖最近添加的列表在主页中 默认行为是任何新提交的项目都会显示在列表中 无论其发布日期如何 有没有办法覆盖它 以便仅发布最新提交的出版物 例如两年内 或有条件的出版物 if dc date issued gt 2014 显示
  • 计算 PySpark 中列的中位数

    我有一个数据框 如下所示 parsed date count 2017 12 16 2 2017 12 16 2 2017 12 17 2 2017 12 17 2 2017 12 18 1 2017 12 19 4 2017 12 19
  • 如何在 Android 中录音电话

    我需要在我的 Android 应用程序中录制电话 我尝试过使用 MediaRecorder 将 AudioSource 设置为 MIC VOICE COMMUNICATION VOICE CALL 和其他选项 但他们都没有记录通话 任何人都
  • Python - 使用正则表达式查找多个匹配项并将其打印出来[重复]

    这个问题在这里已经有答案了 我需要从 HTML 源文件中查找表单内容 我做了一些搜索并找到了很好的方法来做到这一点 但问题是它只打印第一个找到的内容 我如何循环遍历它并输出所有表单内容 而不是只是第一个 line bla bla bla
  • Firestore - 监听特定字段的变化?

    如何使用 firestore js sdk 监听特定字段的变化 在文档中 他们似乎只展示了如何监听整个文档 如果任何 SF 字段发生变化 就会触发回调 db collection cities doc SF onSnapshot funct
  • 使用反向引用和哈希时的 Ruby gsub 问题

    以下代码定义带有正则表达式 键 和替换 值 的哈希 然后它迭代哈希并相应地替换字符串 简单的字符串替换效果很好 但是当我需要在替换之前计算结果时 几年到几天的情况发生变化 它就不行了 预先定义哈希值是关键 我缺少什么 任何帮助将不胜感激 a
  • 通过 OLE 从 Ruby 或 VBS 调用时,Word Document.SaveAs 会忽略编码

    我有一个脚本 VBS 或 Ruby 可以将 Word 文档保存为 过滤后的 HTML 但编码参数被忽略 HTML 文件始终以 Windows 1252 进行编码 我在 Windows 7 SP1 上使用 Word 2007 SP3 红宝石示
  • 如何使用 jQuery 悬停、更改、切换图片

    我正在做我的项目 我正在努力做到这一点 我想让每个图像的点击都能正常工作 这样每个图像都有自己的纸张 需要它悬停 我想使用切换百叶窗效果 我读到 在这方面使用 CSS 背景是明智的 这样我可以交换图片 但我无法理解它 我已经采取了一些代码来
  • Java 8 Firebase Tasks.await()

    我在 Spring Boot 应用程序中使用 Firebase JAVA sdk 尝试验证 firebase 令牌 映射 resp new HashMap Task
  • 使用 dplyr 计算组平均值,同时排除当前观察值

    Using dplyr 最好 我试图计算每个观察值的组平均值 同时从组中排除该观察值 看来这应该可以通过组合来实现rowwise and group by 但这两个功能不能同时使用 给定这个数据框 df lt data frame grou