dplyr:按组查找每个 bin 的平均值

2024-02-14

我正在尝试理解 dplyr。我按组、箱和符号拆分数据框中的值,并且尝试获取每个组/箱/符号组合的平均值。我想输出一个数据框,其中包含每个组/箱/符号组合的这些计数以及每个组的总数。我想我有它,但有时与 ddplyr 的输出相比,我在基本 R 中得到不同的值。我这样做正确吗?也很扭曲……有更直接的方法吗?

library(ggplot2)
df <-  data.frame(
id = sample(LETTERS[1:3], 100, replace=TRUE),
tobin = rnorm(1000),
value = rnorm(1000)
)
df$tobin[sample(nrow(df), 10)]=0

df$bin = cut_interval(abs(df$tobin), length=1)
df$sign = ifelse(df$tobin==0, "NULL", ifelse(df$tobin>0, "-", "+"))


# Find mean of value by group, bin, and sign using dplyr
library(dplyr)
res <- df %>% group_by(id, bin, sign) %>%
        summarise(Num = length(bin), value=mean(value,na.rm=TRUE))

        res %>% group_by(id) %>%
                summarise(total= sum(Num))
            res=data.frame(res)
            total=data.frame(total)
            res$total = total[match(res$id, total$id),"total"]            

res[res$id=="A" & res$bin=="[0,1]" & res$sign=="NULL",]

# Check in base R if mean by group, bin, and sign is correct # Sometimes not?
groupA = df[df$id=="A" & df$bin=="[0,1]" & df$sign=="NULL",]
mean(groupA$value, na.rm=T)

我快要疯了,因为它对我的数据不起作用,而且这个命令只是重复整个数据集的平均值:

ddply(df, .(id, bin, sign), summarize, mean = mean(value,na.rm=TRUE))

其中mean等于mean(value,na.rm=TRUE),完全忽略分组...所有组都是因子,并且值是数字...

然而这有效:

with(df, aggregate(df$value, by = list(id, bin, sign), FUN = function(x) c(mean(x))))

请帮我..


你好像有点动摇了。您已经获得了正确的代码,然后您还获得了额外的代码。

从新的 R 会话开始并定义您的数据,然后

library(dplyr)
res <- df %>% group_by(id, bin, sign) %>%
        summarise(Num = n(), value = mean(value,na.rm=TRUE))

上面的代码来自你的问题,但我替换了length(bin)与内置的dplyr::n()功能。上面的代码准确地给出了分组平均值:

head(res)
#   id   bin sign Num       value
# 1  A [0,1]    - 122 -0.08330338
# 2  A [0,1]    + 111  0.11394381
# 3  A [0,1] NULL   2  0.75232462
# 4  A (1,2]    -  54 -0.09236725
# 5  A (1,2]    +  45  0.20581095
# 6  A (2,3]    -  12 -0.08998771

跳转到代码块中的最后几行:

groupA = df[df$id=="A" & df$bin=="[0, 1]" & df$sign=="NULL", ]
# mean(groupA$value, na.rm=T)
# [1] 0.7523246

与上面结果的第 3 行相匹配。所以你做到了,效果很好!

你的其余代码很混乱:

res %>% group_by(id) %>%
                summarise(total= sum(Num))

我不确定你想用这个来完成什么,但你没有将它分配给任何东西,所以它会运行但不会保存。

至于你的ddply试图:

ddply(df, .(id, bin, sign), summarize, mean = mean(value,na.rm=TRUE))

你会注意到,如果你有dplyr加载然后加载plyr图书馆,有一条消息:

您在 dplyr 之后加载了 plyr - 这可能会导致问题。 如果您需要 plyr 和 dplyr 的函数,请先加载 plyr,然后加载 dplyr: 库(plyr);图书馆(dplyr)

不要忽视这个警告!我猜这件事发生了,你忽略了它,这就是你麻烦的根源之一。也许你不需要plyr完全没有,但如果你这样做,请加载它before dplyr!

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

dplyr:按组查找每个 bin 的平均值 的相关文章

  • 解压 R 数据框中的列表

    我有一个dataframe其中一个字段包含不同长度的列表 我想将该字段中列表的每个元素提取到其自己的字段中 以便我可以将结果收集到一个很长的字段中dataframe每个列表元素都有一个 id 这是一个例子dataframe dat lt s
  • ODE 时间 Matlab 与 R

    如果在 matlab 中使用可变时间步长求解器 例如 ODE45 我会定义输出的时间跨度 即times 0 50 matlab 将返回 0 到 50 之间不同时间步长的结果 然而在 R 中 我似乎必须定义我希望 ODE 返回结果的时间点 即
  • 如何在R中安装pivot_long()和pivot_wide()

    如果您想尝试这些新功能 pivot wide and pivot long 需要安装开发版tidyr devtools install github tidyverse tidyr 但我还没有实现它 我安装了一系列库 除了一个之外 vctr
  • R 子集 XTS 工作日

    如何对 xts 对象进行子集化以仅包含工作日 周一至周五 周六和周日除外 这就是我要做的 library xts data sample matrix sample xts lt as xts sample matrix descr my
  • 关于在 LyX 中生成和交叉引用 knitr 图的意见

    我的目标是在 LyX 中包含一个knitr图 我可以在我的文档中交叉引用 我 插入了浮动图像 添加了标题和标签 在浮动图像中插入了 ERT 而不是图像 我所做的图片如下 我在这里检查过类似的问题 但没有人做我所做的事情 所以我在这里问 有没
  • “x[] <- as.integer(x)”是什么意思

    当我阅读 R 手册时 我遇到了如下代码行 从 R 手册中的 colSums 复制 x lt cbind x1 3 x2 c 4 1 2 5 dimnames x 1 lt letters 1 8 x lt as integer x 有人能告
  • 消除垂直线ggplot

    这个问题以前曾被问过 但答案并不总是明确或很复杂 我希望 ggplot2 的新版本能够带来更简单的解决方案 如何仅消除 ggplot 的垂直线而不消除轴刻度线或标签 这对于条形图来说确实很好 因为它可以消除图形中一些不必要的干扰 这里有一些
  • 从 SpatialPolygons 和其他 sp 类中提取要素坐标

    Package sp为不同的空间概念 点 线 多边形 提供了许多类 对于某些类 访问要素坐标很简单 例如SpatialLines 所有示例均取自相应课程的帮助页面 l1 cbind c 1 2 3 c 3 2 2 l1a cbind l1
  • Pyspark - 一次聚合数据帧的所有列[重复]

    这个问题在这里已经有答案了 我想将数据框分组到单个列上 然后对所有列应用聚合函数 例如 我有一个包含 10 列的 df 我希望对第一列 1 进行分组 然后对所有剩余列 均为数字 应用聚合函数 sum 与此等效的 R 是 summarise
  • R闪亮:在渲染表格时显示“正在加载...”消息

    在 Rstudio Shiny 中 我得到了一些renderDataTable通过 RMySQL 从数据库获取信息的调用 有些查询可能需要几秒钟才能完成 我想添加一条 正在加载 消息 其中表格将在等待时最终呈现 这个问题与这个问题类似 R闪
  • 为什么我的 3D 绘图没有显示在 R Studio 绘图查看器中?

    我通常在 RStudio 版本 1 0 44 中查看绘图时没有问题 但是当我尝试查看使用 rgl 包创建的 3D 绘图时 我的 RStudio 绘图查看器中什么也没有出现 我能够毫无问题地绘制图 汽车 散点图 这是我正在使用的代码 inst
  • 使用服务器中的 Shiny Reactive 作为 UI 输入

    我正在努力使用反应函数的结果作为 UI 的输入 目前 我主要使用 renderUI 随着应用程序变得更加复杂 它会降低性能 Using DetailsList items filtered Accounts columns columns
  • 非等值连接 - 比较 R 中的两个数据帧

    我想根据第二个数据框中存在的值过滤数据框 例如 匹配第一个数据帧中 BP 列中高于 start pos 列的第一个值且小于 end pos 列或仅小于第二个数据中的 end pos 的行框架 我需要对第二个数据框中的所有值重复此过程 目前
  • 一起使用 R6 类和 foreach() %dopar% 的问题

    当与 foreach 一起使用时 我在 R6 类上遇到问题 可能与环境有关 我使用的是 Windows 假设有两个 R6 类 class1 和 class2 class1 中的 method1 依赖于 class2 例如 请参见下面的示例代
  • R 中计算滚动实现波动率的更快方法

    我想计算一组指数的滚动 20 天已实现波动率 这是我用来下载指数价格 计算每日收益和 20 天已实现波动率的代码 library quantmod library PerformanceAnalytics tickers c RUT STO
  • 如何在时间序列的中途更改ggplot2中的线属性?

    取以下两个时间序列的简单图 economics ggplot2 dataset require dplyr require ggplot2 require lubridate require tidyr economics gt gathe
  • 使用 R 中的晶格为 xyplot 中的每个面板添加不同的垂直线

    我有一个按年份排列的几个站点的植物物种频率图 我正在使用 grid 包中的 xyplot 绘制这些站点 我已经弄清楚如何获取每个物种位点组合的散点图 但是 我想添加一个 abline 代表进行化学处理的每年 每个地点在不同年份添加了化学处理
  • 查询文本指定 use_legacy_sql:false,而 API 选项指定:true

    我将 standardSQL 与 bigrquery 一起使用 library bigrquery project lt sql lt standardSQL SELECT result lt query exec sql project
  • 读取r中不同目录中的多个文件[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想从不同的目录读取多个 csv 文件 然后将其放入单个数据框中 我有两种目录可供阅读 A LogIIS 文件夹01 文件 csv 在
  • gridExtra 2.0.0 更改标题大小

    我知道 gridExtra 已更新 因此 我想知道如何更改标题大小 这不再有效 grid arrange a b c d ncol 2 nrow 2 main textGrob Title gp gpar fontsize 15 font

随机推荐

  • 创建 (x, y) 对的随机顺序,不重复/后续的 x

    假设我有一个有效的列表X 1 2 3 4 5 以及有效的列表Y 1 2 3 4 5 我需要生成中每个元素的所有组合X以及中的每个元素Y 在本例中为 25 并按随机顺序获取这些组合 这本身很简单 但有一个额外的要求 在这个随机顺序中 不能有相
  • 如何从 Android Studio 项目中完全删除 Git?

    我正在使用 Android Studio 开发我的第一个项目 但无法正确配置 Git 和 GitHub 我想从我的项目中完全删除我的 Git Git 项目并重新开始 我怎样才能做到这一点 另外 我的项目文件夹中没有 git 文件夹 那么我的
  • Minhash实现如何找到排列的哈希函数

    我在实施 minhashing 时遇到问题 在纸上和阅读中我理解了这个概念 但我的问题是排列 技巧 实现的建议不是排列集合和值的矩阵 而是 选择 k 例如 100 个独立的哈希函数 然后算法表示 for each row r for eac
  • 查询 CosmosDb 非结构化 JSON

    CosmosDB 如何查询动态 JSON 中的属性值 该应用程序允许将 JSON 存储为对象的一组自定义属性 它们被序列化并存储在 CosmosDb 中 例如 这里有两个条目 id ade9f2d6 fff6 4993 8473 a2af4
  • 为什么我的图像旋转算法不起作用?

    尝试 1 和 2 Note 删除了减少问题大小的首次尝试 请参阅社区 wiki 了解之前的尝试 尝试3 根据 fuzzy waffle 的示例 我已经实现了以下内容 但它似乎无法正常工作 有什么想法我可能做错了什么吗 ImageMatrix
  • Selenium 在 JS 中使用 async/await,查找并单击元素

    我正在尝试使用 Selenium webdriver 和 Mocha 将我的测试重构为具有异步 等待功能的 ES7 我有以下代码 await loginPage loginAsAdmin THIS DOES NOT WORK await l
  • 多数据库应用程序的访问控制

    我有一个 mainDB nsf 其中包含所有 XPage 设计 代理 脚本库等 用户从该数据库中选择一个应用程序 可能存在一个或多个应用数据库 每个应用程序数据库都包含应用程序的实际数据 以及在 mainDB 中的自定义控件中访问的数据的视
  • 如何使用请求的第一个字母使用 .htaccess 重写缓存子目录?

    我有一个缓存程序 可以创建动态生成的 php 文件的静态 html 文件 我目前使用 php 来检查缓存版本是否存在 如果存在 我将其提供并退出 正如在这个问题 http stackoverflow com questions 561273
  • 如何在sklearn中实现n次重复的k折交叉验证以产生n*k折?

    I got some trouble in implementing a cross validation setting that i saw in a paper Basically it is explained in this at
  • 如何将 webpack 与 create-react-app 一起使用?

    我创建了一个创建反应应用程序 https github com facebook create react app项目遵循create react app 提供的文档 https facebook github io create reac
  • 彩色变音符号和 unicode 行为

    我只是偶然发现这个关于着色变音符号的问题 https stackoverflow com questions 23537441 how to display accents over words with different colors
  • 如何备份/移动 LXC 容器?

    我想要 lxc 容器备份 我们有服务器12 04 LTS ubuntu server我已经安装了LXC 1 0 0 alpha2在里面 我想将我们的 ubuntu 服务器更新到 14 04 LTS 所以我想做的是备份 LXC 容器 gt 将
  • Java/Swing 中的翻书

    你们都看过那些基于 Flash 的翻页书 我想用 Java 创建同样的东西 我使用 JTextArea 作为书的叶子 我想知道的是如何通过重写与 Mouse KeyListener 相结合的 componentPaint 方法来实现翻页效果
  • Perl的@INC是如何构造的? (又名影响 Perl 模块搜索位置的所有方法是什么?)

    影响 Perl 模块搜索位置的方式有哪些 或者 Perl的 INC是如何构造的 据我们所知 Perl 使用 INC包含目录名称的数组 用于确定在哪里搜索 Perl 模块文件 https stackoverflow com questions
  • 如何有条件地将服务注入组件?

    我有2个服务one service ts and two service ts 和一个组件dashboard component ts 如何有条件地将这些服务注入到组件中 import Component ViewEncapsulation
  • Linq VAR 和类型化对象

    我想要一个代码示例 目前我在 c 和 asp net 4 ef4 中使用 linq var querySlotOrder from slot in context CmsSlots where slot SlotId myCurrentSl
  • Sublime Text 的缩进错误

    我正在尝试使用 Sublime Text 3 for HTML 中的自动缩进功能 我在 html 中有一些块注释 选择 编辑 gt 行 gt 重新缩进 可以正常工作 直到遇到块注释 尝试重新缩进此处的示例 table tr td Cell
  • imagecreatefromjpeg 和类似的函数在 PHP 中不起作用

    我已经搜索过了 过去的问题中提供的解决方案对我来说完全无法理解 每当我运行类似的函数时imagecreatefromjpeg 我明白了 致命错误 调用未定义的函数 imagecreatefromjpeg 我正在安装新的 PHP 我上次安装从
  • 异步和等待 - 如何维护执行顺序?

    我实际上正在阅读一些有关任务并行库以及使用 async 和 wait 进行异步编程的主题 C 5 0 in a Nutshell 一书指出 当使用await关键字等待表达式时 编译器会将代码转换为如下所示 var awaiter expre
  • dplyr:按组查找每个 bin 的平均值

    我正在尝试理解 dplyr 我按组 箱和符号拆分数据框中的值 并且尝试获取每个组 箱 符号组合的平均值 我想输出一个数据框 其中包含每个组 箱 符号组合的这些计数以及每个组的总数 我想我有它 但有时与 ddplyr 的输出相比 我在基本 R