Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >具有多个变量的R ddply

具有多个变量的R ddply
EN

Stack Overflow用户
提问于 2014-03-07 01:32:52
回答 1查看 12.1K关注 0票数 3

下面是我的真实数据集的一个简单数据框架:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df <- data.frame(ID=rep(101:102,each=9),phase=rep(1:3,6),variable=rep(LETTERS[1:3],each=3,times=2),mm1=c(1:18),mm2=c(19:36),mm3=c(37:54))

我想首先按ID和变量分组,然后对于值(mm1,mm2,mm3),从所有阶段(phase1到phase3)中减去阶段3,这将使阶段1中的mm(1-3)为all -2,阶段2中为all -1,阶段3中为all 0。

R抛出一个错误"Error in Ops.data.frame(x,x3,):- only defined for equally sized frames“,就像我尝试的那样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df1 <- ddply(df, .(ID, variable), function(x) (x - x[3,]))   

任何建议都将不胜感激。输出应如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ID phase variable mm1 mm2 mm3
101  1      A     -2  -2  -2
101  2      A     -1  -1  -1
101  3      A      0   0   0
101  1      B     -2  -2  -2
101  2      B     -1  -1  -1
101  3      B      0   0   0
101  1      C     -2  -2  -2
101  2      C     -1  -1  -1
101  3      C      0   0   0
102  1      A     -2  -2  -2
102  2      A     -1  -1  -1
102  3      A      0   0   0
102  1      B     -2  -2  -2
102  2      B     -1  -1  -1
102  3      B      0   0   0
102  1      C     -2  -2  -2
102  2      C     -1  -1  -1
102  3      C      0   0   0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-07 02:03:34

好吧,我花了一点时间才弄明白你想要什么,但这里有一个解决方案:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cols.to.sub <- paste0("mm", 1:3)
df1 <- ddply(
  df, .(ID, variable), 
  function(x) {
    x[cols.to.sub] <- t(t(as.matrix(x[cols.to.sub])) - unlist(x[x$phase == 3, cols.to.sub]))
    x
} ) 

这将产生(前6行):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    ID phase variable mm1 mm2 mm3
1  101     1        A  -2  -2  -2
2  101     2        A  -1  -1  -1
3  101     3        A   0   0   0
4  101     1        B  -2  -2  -2
5  101     2        B  -1  -1  -1
6  101     3        B   0   0   0

一般来说,调试这类问题的最好方法是在传递给ddply的函数中放入一条browser()语句,这样您就可以在空闲时检查对象。这样做会揭示出:

传递给你的函数的数据帧包括ID列和cols.to.sub)

  • Even列,所以你的列不是前三列(因此需要定义
  1. ,如果你解决了这个问题,你不能对维度不相等的数据帧进行操作,所以我在这里做的是转换成mm,然后利用向量回收从矩阵的其余部分减去一行。因为向量回收是column-wise.

,所以我需要转置( t )

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22239745

复制
相关文章
muleESB的第一个开发实例-HelloWorld(二)
现在你已经在Studio中构建了一个基本的应用程序,下面我们需要配置每个单独的元素。
程序猿小亮
2021/01/29
2.1K0
MULE 无法接收TCP报文问题分析
近期某使用mule的项目在与N公司联调时发现对方的请求存在严重延迟. 请求是基于TCP协议的.
东风微鸣
2022/04/21
1.4K0
MULE 无法接收TCP报文问题分析
如何在Mule 4 Beta中实现自动流式传输
原文地址:https://dzone.com/articles/how-automatic-streaming-in-mule-4-beta-works
Steve Wang
2018/06/07
2.2K0
MULE新手入门
对于新手来说,可能最需要的是先了解mule的基础知识和语法,这时,可以先看《MULE_3.2_节点详解.pdf》,了解mule的结构、常用参数获取方法、一些基础控件。 好了,现在已经对mule有了初步的了解了,然后练习几个例子,可以参考《mule-esb-examples.pdf》文档。里边有很多的例子,对于一般使用就够用了。 下面,要深入的了解了,这个时候就需要看用户手册了,可以查看《Mule ESB 3 User Guide.pdf》文档。 以上的文档都是比较早的版本,mule从3.5开始、3.6、
Java学习123
2018/05/16
3.6K0
难解?SAP云平台集成前路何方?
实际上,连SAP全球云平台产品营销VP Dan Lahl都表示,这是SAP的一个弱点。为了解决这个问题,SAP今年推出了一系列SAP Cloud Platform Open connector的产品,以支持与第三方云应用程序的连接。
人称T客
2018/12/24
8940
kafka连接器两种部署模式详解
一 kafka Connector介绍 Kafka Connect是一个用于在Apache Kafka和其他系统之间进行可扩展和可靠数据流传输的工具。这使得快速定义将大量数据传入和传出Kafka的连接器变得很简单。Kafka Connect可以接收整个数据库或从所有应用程序服务器收集指标到Kafka主题中,使得数据可用于低延迟的流处理。导出作业可以将来自Kafka主题的数据传送到二级存储和查询系统或批处理系统中进行离线分析。 Kafka Connect功能包括: Kafka连接器的通用框架 - Kafk
Spark学习技巧
2018/01/31
7.3K0
kafka连接器两种部署模式详解
2022 年最佳 ETL 工具:提取转换和加载软件
ETL 工具已经使用了近五年,使组织能够持续分析、开发和处理数据,数家数据库管理、分析和商业智能领域的资深企业供应商继续保持领先地位,同时,行业解决方案在 2022 年不断演进,以满足云和边缘数据处理需求。
网络技术联盟站
2023/03/13
3.6K0
2022 年最佳 ETL 工具:提取转换和加载软件
「集成架构」我们得谈谈 Apache Camel
Apache Software Foundation(ASF)在2019年监督了339个项目,有超过3000名提交者组成的强大社区修改了59309787行代码。
架构师研究会
2021/01/06
2.3K0
深度长文:Power Automation 帮助企业实现数字化转型
在Ignite 2019上,我们宣布将Flow更改为Power Automate,并在UI Flow连接器的公开预览中引入了机器人流程自动化(RPA)。我们对几种激动人心的功能感到兴奋,这些功能将在今年全面上市,并想花一点时间回顾一下将我们带到这里的过程,以便您简要了解一些最重要的功能,这些功能现在已成为Power Automate的一部分,确保它是贵组织最全面,最先进的自动化服务。
寒树Office与RPA
2020/03/12
2.6K0
应用程序的部署与发布
创建这个策略只是一个开始而已,随着项目的进行,它也会改变。发布策略的一个关键部分就是发布计划,它用来描述如何执行发布。
新亮
2022/12/05
9420
springboot项目接入sap与部署到docker遇到的问题实录
本文例子来源于某个业务团队,本文主要记录在协助他们部署接入sap遇到的问题,且只记录解决问题的答案,不说明原理。
lyb-geek
2022/01/06
8170
springboot项目接入sap与部署到docker遇到的问题实录
本文例子来源于某个业务团队,本文主要记录在协助他们部署接入sap遇到的问题,且只记录解决问题的答案,不说明原理。
lyb-geek
2021/01/05
1.3K0
springboot项目接入sap与部署到docker遇到的问题实录
Gartner 发布2019年分析和 BI 平台魔力象限报告,21家上榜公司知多少!
近日,Gartner 研究公司发布了最新的分析和商业智能软件平台魔力象限报告。该报告根据每个玩家在市场上的实力将其分为四类——领导者、挑战者、有远见者和利基玩家。上榜企业共21家,其中,Qlik、Tableau、ThoughtSpot和微软都是分析和商业智能平台的顶级提供商。
人称T客
2019/05/08
2.2K0
Gartner 发布2019年分析和 BI 平台魔力象限报告,21家上榜公司知多少!
腾讯轻联iPaaS,新一代SAP集成平台
SAP作为许多中大型客户常用的ERP企业资源管理应用,常常面临着需要和其他系统如BPM业务流程管理系统、CRM客户管理系统、WMS仓储管理系统、OMS订单管理系统、MES车间制造管理系统以及各类商城等核心业务系统打通连接的问题。
阿那个沫
2023/08/21
1.2K1
腾讯轻联iPaaS,新一代SAP集成平台
wildfly 21中应用程序的部署
除了配置文件的修改之外,最重要的就是应用程序的部署了。本文将会讲解如何在wildfly 21中,在Managed Domain和standalone两种模式中如何部署应用程序。
程序那些事
2020/12/31
1.5K0
在Linode上部署React应用程序
React是一个用于构建用户界面的流行JavaScript库。虽然React经常被用作更复杂应用程序的前端,但它也足够强大,可以单独用于完整的客户端应用程序。
selinayu
2018/09/21
2.7K0
如何使用netlify部署vue应用程序
Netlify是一个现代网站自动化系统,其JAM架构代表了现代网站的发展趋势。所谓JAM,就是指基于客户端JavaScript、可重用API和预构建Markup标记语言的三者结合。
肥晨
2022/12/21
1.1K0
如何使用netlify部署vue应用程序
点击加载更多

相似问题

Mule ESB:无法从SAP获得SAP Jco Jco的旧版本用于Mule SAP连接器

14

Mule应用程序部署问题

19

SAP连接器有问题

22

Mule S3连接器Cloudhub部署问题

10

Mule集群部署问题

45
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文