使用 ddply 进行汇总统计

2024-04-22

我喜欢使用编写一个函数ddply根据两列的名称输出汇总统计信息data.frame mat.

  • mat是一个大data.frame与列的名称"metric", "length", "species", "tree", ...,"index"

  • index是具有 2 个水平的因子"Short", "Long"

  • "metric", "length", "species", "tree"其他都是连续变量

功能:

summary1 <- function(arg1,arg2) {
    ...

    ss <- ddply(mat, .(index), function(X) data.frame(
        arg1 = as.list(summary(X$arg1)),
        arg2 = as.list(summary(X$arg2)),
        .parallel = FALSE)

    ss
}

我希望调用后输出看起来像这样summary1("metric","length")

Short metric.Min. metric.1st.Qu. metric.Median metric.Mean metric.3rd.Qu. metric.Max. length.Min. length.1st.Qu. length
.Median length.Mean length.3rd.Qu. length.Max. 

....

Long metric.Min. metric.1st.Qu. metric.Median metric.Mean metric.3rd.Qu. metric.Max. length.Min. length.1st.Qu. length
.Median length.Mean length.3rd.Qu. length.Max.

....

目前该函数没有产生所需的输出?这里应该做哪些修改呢?

感谢您的帮助。


这是一个玩具示例

mat <- data.frame(
    metric = rpois(10,10), length = rpois(10,10), species = rpois(10,10),
    tree = rpois(10,10), index = c(rep("Short",5),rep("Long",5))
)

As 尼克在回答中写道 https://stackoverflow.com/questions/5714658/summary-statistics-using-ddply/5715342#5715342你不能使用$引用作为角色名称传递的变量。当你写下X$arg1 then R搜索名为的列"arg1" in data.frame X。您可以通过以下方式引用它X[,arg1] or X[[arg1]].

如果您想要良好命名的输出,我建议以下解决方案:

summary1 <- function(arg1, arg2) {

    ss <- ddply(mat, .(index), function(X) data.frame(
        setNames(
            list(as.list(summary(X[[arg1]])), as.list(summary(X[[arg2]]))),
            c(arg1,arg2)
            )), .parallel = FALSE)

    ss
}
summary1("metric","length")

玩具数据的输出是:

  index metric.Min. metric.1st.Qu. metric.Median metric.Mean metric.3rd.Qu.
1  Long           5              7            10         8.6             10
2 Short           7              7             9         8.8             10
  metric.Max. length.Min. length.1st.Qu. length.Median length.Mean length.3rd.Qu.
1          11           9             10            11        10.8             12
2          11           4              9             9         9.0             11
  length.Max.
1          12
2          12
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ddply 进行汇总统计 的相关文章

  • 从 data.frame 创建新列

    我有一个长格式的数据集 其中测量 时间 嵌套在 Networkpartners NP 中 而 Networkpartners NP 又嵌套在人员 ID 中 下面是它的示例 真实数据集有数千行 ID NP Time Outcome 1 11
  • xml2 包 (R) 中的 xml_find_all 函数未找到相关节点

    我使用 R 中的 xml2 包来访问 xml 数据 发现它在不同的 xml documents 上表现不同 在这个宠物的例子中 library xml2 doc lt read xml
  • 为 RStudio Server 1.0.44 配置日志目录

    我在 CentOS 7 上运行 RStudio Server 1 0 44 根据文档 https support rstudio com hc en us articles 200554766 RStudio Server Applicat
  • 使用列表中的数据框:删除变量,添加新变量

    定义一个列表dats有两个数据框 df1 and df2 dats lt list df1 data frame a sample 1 3 b sample 11 13 df2 data frame a sample 1 3 b sampl
  • 有条件填写 pandas 数据框

    我有一个数据框df列中包含浮点值A 我想添加另一列B这样 B 0 A 0 for i gt 0 B i if np isnan A i then A i else Step3 B i if abs B i 1 A i B i 1 lt 0
  • left_join 表示列不存在,即使它存在

    我想用两个不同的变量 tp join 连接两个数据框 出现错误 表示无法在第二个数据帧中找到变量 但是当我运行函数 colnames 时 会显示列名称 为什么会这样呢 df new lt left join master settlemen
  • 如何从类外部更改公共 R6 类方法?

    我希望能够在我的 R6 类中重新定义公共方法 以便它根据该类保存的数据类型进行更改 如下所示 library R6 Simple lt R6Class Simple public list dt mtcars my print functi
  • 用于更改向量中元素顺序的闪亮小部件

    在很多网站上 您都有一个拖放界面来更改列表中元素的顺序 我正在寻找类似的东西闪亮 我希望用户能够拖放列表中的元素 通过更改顺序来更改优先级 现在我有一个滥用的解决方案selectizeInput 这是可行的 但当选择列表变得更大时 它很快就
  • 如何在ggplot2中使用希腊符号?

    我的类别需要用希腊字母命名 我在用ggplot2 并且它与数据配合得很好 不幸的是 我无法弄清楚如何将这些希腊符号放在 x 轴上 在刻度线处 并使它们出现在图例中 有什么办法可以做到吗 更新 我看了一下link https github c
  • R Shiny - 修复了 Shiny 仪表板中的侧边栏和主标题

    我有一个简化的闪亮仪表板 请参阅下面的代码 我想修复侧边栏和主标题 因此 在其他帖子的帮助下 我编写了一个 CSS 文件来解决该问题 sidebar color FFF position fixed width 220px white sp
  • 尝试 .Split 时出现“列必须与键长度相同”错误

    下面的代码在 Python 3 8 10 中运行良好 但在 Python 3 10 中无法运行 知道可能是什么问题吗 import pandas as pd import requests url https coinmarketcap c
  • 自动将变量名称添加到列表的元素[重复]

    这个问题在这里已经有答案了 我有一个模型列表 为了使代码更易于维护 因此可以方便地添加和删除模型 我希望有一个地方来存储它们及其名称 为此 我必须解决以下命名问题 上游 我生成模型的方式比以下方式效率低 如果是这样压缩的 我会assign他
  • 如何用月份的全名替换数字月份

    使用 tidyverse 包将月份的列更改为完整的实际月份名称 请记住 尽管这些数据只有四个月 但我的真实数据集包含一年中的所有实际月份 我是 tidyverse 的新手 mydata lt tibble camp c Platinum 2
  • 如何对工作区中的元素运行循环?

    gt ls 1 A anorex 1 anorexia B byMonth C clotting 8 counts d D d AD DelayByDay delayed glm D93 15 glmout groups h housing
  • 如何将函数应用于多个 pandas 数据框

    我有多个数据框 df1 df2 df3 dfn 它们具有相同类型的数据 但来自无法连接的不同描述符组 现在我需要手动将相同的函数应用于每个数据帧 如何将相同的函数应用于多个数据框 pipe https pandas pydata org p
  • 如何使用 tidyr 将向量中字符串中的每个字符分隔到一列中

    我想将向量中的每个字符串分成列 但我做不到 library tidyr library dplyr df lt data frame x c abe bas dds eer df gt separate x c A B C sep 1 我想
  • 如何将环境变量传递给shinyapps

    我想将安全参数传递给shinyapps io部署 以便我的应用程序可以通过以下方式获取它们 Sys getenv PASSWORD X 我找不到任何相关内容deployApp函数在rsconnect包裹 您可以使用Renviron网站 or
  • 粘贴两个 data.table 列

    dt lt data table L 1 5 A letters 7 11 B letters 12 16 L A B 1 1 g l 2 2 h m 3 3 i n 4 4 j o 5 5 k p 现在我想粘贴列 A 和 B 以获得一个新
  • R 中的 huxtable 即使有选项也默认为科学记数法(scipen=999)

    我试图生成像样的桌子 并在过去的一周尝试了很多软件包 我的头在游泳 今天早上开始使用 package huxtable 并试图摆脱科学记数法 x lt mtcars 1 5 1 2 x mpg lt x mpg 10000000 get s
  • 计算数据帧 R 中字符串的频率

    我想计算数据框中某些字符串的频率 strings lt c pi pie piece pin pinned post df lt as data frame strings 然后我想计算字符串的频率 counts lt c pi in pi

随机推荐

  • 提交表单不会在 jquery ajax 调用中停止

    我得到以下代码 ajax type POST async false url CheckIdExist data param success function result if result true return false error
  • 如何解析不寻常的日期字符串

    您好 我有一个不寻常的日期格式 我想将其解析为 DateTime 对象 string date 20101121 2010 11 21 string time 13 11 41 HH mm ss 我想用DateTime Tryparse 但
  • Android.mk 与 Application.mk

    我对 Android mk 和 Application mk 的使用有点模糊 我尝试阅读 APPLICATION MK HTML ANDROID MK HTML 在NDK 附带的文档 http developer android com s
  • 如何将类元数据转换为 JSON 字符串

    如何生成类元数据的 JSON for eg C 类 public class Product public int Id get set public string Name get set public bool IsActive get
  • WebClient 最大连接池限制?

    如果远程服务阻塞 我可以发送多少个并发请求 意思是 什么是最大连接数spring在使用时内部使用的池限制WebClient Autowired private WebClient webClient webClient post uri u
  • 卸载 Magento 自定义扩展及其数据库

    我创建了一个扩展并创建了扩展的 zip 文件 以便我可以通过 Magento Connect 安装它 当我使用 Magento Connect 卸载自定义扩展时 它只会删除我的扩展文件和文件夹 但不会删除我的扩展的数据库表 我还想删除我的数
  • 如何在react 16.4.1中使用leaflet-polylinedecorator

    我正在尝试在react 16 4 1中使用传单插件polylinedecorator 所以没有钩子 然而 我能找到的关于如何在 React 中使用此插件的唯一示例是使用钩子 请参阅 如何将 Polylinedac orator 与 Reac
  • 在 Windows 中更改 Angular 项目中的任何内容时,Docker 不会重新编译

    我正在尝试对您的角度应用程序进行 dockerize 为此我创建了一个 Dockerfile 但每当我尝试编辑或更新任何组件时 它都不会编译我的角度应用程序 这是泊坞窗文件 FROM node latest RUN mkdir usr sr
  • MPI+CUDA 与纯 MPI 相比有何优势?

    加速应用程序的常用方法是使用 MPI 或更高级别的库 例如在幕后使用 MPI 的 PETSc 并行化应用程序 然而 现在每个人似乎都对使用 CUDA 来并行化他们的应用程序或使用 MPI 和 CUDA 的混合来解决更雄心勃勃 更大的问题感兴
  • 将原型 bean 自动装配到原型 bean 中?

    我正在使用一些现有的代码 它正在做我以前从未见过的事情 我已经使用方法注入将原型 bean 自动装配到单例中 或者使用 getBean 从上下文中获取 bean 我在这段代码中看到的是一个 bean 它是一个原型并使用 getBean 检索
  • 如何从 Survey Monkey 调查中获取受访者 ID?

    故事 我正处于为我公司正在制定的零售商激励计划创建视频教学引擎的初始阶段 其运作方式是零售商将注册并获得登录系统以访问内容的能力 登录后 零售商将观看有关我公司产品的短视频 然后他们将被要求回答有关该产品的 3 或 4 个问题 我们的想法是
  • PHP 将字符串解析为条件运算符

    我有一个表单 用户可以在其中创建自己的条件 例如
  • 绘制 matplotlib 图表以显示直方图箱中的总计数

    我正在尝试显示直方图 下面的数组是直方图每个单独箱的计数 binVals 0 5531608 6475325 1311915 223000 609638 291151 449434 1398731 2516755 3035532 29769
  • 如何制作轨道时间戳

    make 如何保留文件的时间戳 我正在尝试将我的 git 存储库部署到位 我正在为大多数不会改变的文件添加预编译的二进制文件 现在 当我从 git 签出存储库时 我不想编译这些 c 文件 我想使用这些预构建的二进制文件 因此 为了设置这个方
  • 如何在 MATLAB 中调整矩阵大小?

    假设我有一个1 by 12矩阵 我想将其调整为4 by 3矩阵 我怎么能这样做呢 我当前的解决方案有点丑陋 for n 1 length mat 3 out n 1 3 mat n 1 3 1 n 1 3 3 end 有一个更好的方法吗 r
  • JSF:使用 ajax 清除 inputTextArea 时出现奇怪的行为

    这是我所拥有的
  • 点击链接后如何导航回来?

    我对在 vba 中使用 IE 还很陌生 所以有时我很难纠正在编写从网络上抓取数据的代码时所犯的任何错误 我编写了一些代码来单击标题下 20 个链接中的每个视频链接Microsoft computer training videos可以在它的
  • 在硒自动化中,鼠标箭头移动是否可以用于测试用例

    我是硒的新手 我想知道如何向用户显示鼠标箭头移动 我的意思是说我们自动化某些事情 我想知道如何向用户显示鼠标箭头移动看到硒中正在进行的自动化 是否可以 我们能否清楚地显示正在单击的内容 我的意思是通过鼠标箭头移动单击了哪个按钮 我希望我很清
  • 更改为服务器端后如何获取标签文本?

    我试图在不回发时将标签的文本分配给隐藏字段 但失败了 这就是我所做的 If Not IsPostBack Then Dim structPayperiod As strcPayperiodDet structPayperiod objTim
  • 使用 ddply 进行汇总统计

    我喜欢使用编写一个函数ddply根据两列的名称输出汇总统计信息data frame mat mat是一个大data frame与列的名称 metric length species tree index index是具有 2 个水平的因子