首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将订单分类为数字

将订单分类为数字
EN

Stack Overflow用户
提问于 2015-03-05 18:10:15
回答 2查看 52关注 0票数 0

这是(也许:)我需要为我的老板解决更长时间的最后一个问题,所以请再帮我一次(最后一次;) --我想按数字将订单“分类”:

"0“如果产品大小、颜色和制造商不等于个人订购的最大尺寸和颜色以及制造商

"1“如果项目大小等于个人最有秩序的大小

"2“如果项目颜色等于个人最有秩序的颜色

"3“如果产品制造商等于个人订购最多的制造商

"4“如果项目大小和颜色等于个人最有秩序的大小和颜色

"5“如果产品尺寸和制造商等于个人订购的最大尺寸和制造商

"6“如果产品的颜色和制造商等于个人订购的最大尺寸和制造商

"7“如果产品的颜色、颜色和制造商与个人最订购的尺寸、颜色和制造商相等

数据:

代码语言:javascript
复制
DB <- data.frame(orderID  = c(1,2,3,4,5,6,7,8,9,10),     
orderDate = c("1.1.14","1.1.14","1.1.14","1.1.14","2.1.14",
  "2.1.14","2.1.14","2.1.14","2.1.14","2.1.14"),  
itemID = c(2,3,2,5,12,4,2,3,1,5),  
size = c("m", "l", 42, "xxl", "m", 42, 39, "m", "m", 44),
color = c("green", "red", "blue", "yellow", "red", "yellow",
   "blue", "red", "green", "black"),
manufacturer = c("11", "12", "13", "12", "13", "13", "12", "11", "11", "13")
customerID = c(1, 2, 3, 1, 1, 3, 2, 2, 1, 1),
mostorderedsize = c("m", "-", "42", "m", "m", "42", "-", "-", "m", "m"),
mostorderedcolor = c("green", "red", "-", "green", "green", "-", 
  "red", "red", "green", "green"), stringsAsFactors=FALSE)
mostorderedmanufacturer = c("-", "12", "13", "-", "-", "13", "12", "12", "-", "-")

预期成果:

代码语言:javascript
复制
DB$AAPP = c("4", "6", "5", "0", "1", "5", "3", "2", "4", "0")    

不幸的是我不知道如何解决这个问题-希望你们能帮我.

太棒了!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-05 18:30:30

下面是一个方法:

代码语言:javascript
复制
DB <- transform(DB, AAPP = (as.character(size) == mostorderedsize) +
                             2 * (as.character(color) == mostorderedcolor))

结果:

代码语言:javascript
复制
   orderID orderDate itemID size  color customerID mostorderedsize mostorderedcolor AAPP
1        1    1.1.14      2    m  green          1               m            green    3
2        2    1.1.14      3    l    red          2               -              red    2
3        3    1.1.14      2   42   blue          3              42                -    1
4        4    1.1.14      5  xxl yellow          1               m            green    0
5        5    2.1.14     12    m    red          1               m            green    1
6        6    2.1.14      4   42 yellow          3              42                -    1
7        7    2.1.14      2   39   blue          2               -              red    0
8        8    2.1.14      3    m    red          2               -              red    2
9        9    2.1.14      1    m  green          1               m            green    3
10      10    2.1.14      5   44  black          1               m            green    0

更新

可以将此命令用于更新的问题:

代码语言:javascript
复制
transform(DB, AAPP = round(1.3 * (as.character(size) == mostorderedsize) +
                        2.3 * (as.character(color) == mostorderedcolor) +
                        3.3 * (as.character(manufacturer) == mostorderedmanufacturer)))
票数 1
EN

Stack Overflow用户

发布于 2015-03-05 18:22:54

你可以试试

代码语言:javascript
复制
 indx <- DB[c('size', 'color')]==DB[c('mostorderedsize', 'mostorderedcolor')]
 DB$AAPP <- as.numeric(factor(1+2*indx[,1]+4*indx[,2]))-1
 DB$AAPP
 #[1] 3 2 1 0 1 1 0 2 3 0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28884760

复制
相关文章

相似问题

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