首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >得到相同顺序的成对和

得到相同顺序的成对和
EN

Stack Overflow用户
提问于 2015-10-20 17:52:41
回答 2查看 42关注 0票数 1

在R中得到成对和的最快方法是什么?我读过关于梳子的文章,但不知道如何在这里应用它。

代码语言:javascript
复制
    df <- data.frame(dept= c('MENS APPAREL','MOVIES','BEAUTY','HOME','MOVIES','ELECTRONICS'), GMV=c(78.94,23.84,7.6,15, 2,22.7),order_num=c(1,1,1,2,2,2))

我所拥有的:

代码语言:javascript
复制
    dept            TOT_GMV    order_num
    MENS APPAREL    78.94        1
    MOVIES          23.84        1
    BEAUTY          7.6          1
    HOME            15           2
    MOVIES          2            2
    ELECTRONICS     22.7         2

我需要的是:

代码语言:javascript
复制
    dept pair                    GMV    order_num
    MENS APPAREL AND BEAUTY      86.54    1
    MENS APPAREL AND MOVIES      102.78   1
    MOVIES & BEAUTY              31.44    1
    HOME AND MOVIES              17       2
    HOME AND ELECTRONICS         37.7     2
    MOVIES AND ELECTRONICS       24.7     2

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-20 18:46:10

我找到了解决办法。如果有更短的方法做这件事,请告诉我。

代码语言:javascript
复制
   df <- data.frame(dept= c('MENS APPAREL','MOVIES','BEAUTY','HOME','MOVIES','ELECTRONICS'), GMV=c(78.94,23.84,7.6,15,  2,22.7),order_num=c(1,1,1,2,2,2))
   df1 <- df
   dd <- merge(df,df1,by=c("order_num"),all.y=TRUE)
   dd1 <- subset(dd,dept.x != dept.y)
   dd2 <- dd1[!duplicated(t(apply(dd1, 1, sort))), ]

   dd2$GMV <- dd2$GMV.x + dd2$GMV.y
   dd2[,c("order_num","dept.x","dept.y","GMV")]

   order_num       dept.x           dept.y       GMV
      1           MENS APPAREL      MOVIES       102.78
      1           MENS APPAREL      BEAUTY       86.54
      1           MOVIES            BEAUTY       31.44
      2           HOME              MOVIES       17.00
      2           HOME              ELECTRONICS  37.70
      2           MOVIES            ELECTRONICS  24.70
票数 1
EN

Stack Overflow用户

发布于 2015-10-20 19:48:38

虽然下面的内容没有返回您想要的确切输出,但它确实包含了所有可能的组合。使用“心理”包,您可以在类似于使用“%+%”的矩阵乘法的操作中添加两个向量或矩阵:

代码语言:javascript
复制
m <- as.matrix(df[,2])
t <- m%+%t(m)
rownames(t)<- df$dept
colnames(t)<-df$dept    

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

https://stackoverflow.com/questions/33243487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档