【发布时间】:2020-10-05 17:41:33
【问题描述】:
我尝试编写一个代码来执行一项任务:“编写一个函数 purchase.median.order.price,它有一个参数:购买,并返回订单中值(数字)。
应该使用 data.table 进行分组。购买商品(退货)数量为非正数的记录将被忽略。
请注意,一条记录可以对应多条记录——同一个订单号的“仓位”,在计算订单价值时,需要考虑用户购买多件同类型商品的情况(他们的数量以数量表示)。”
sample.purchases <- data.table(price = c(100000, 6000, 7000, 5000000),
ordernumber = c(1,2,2,3),
quantity = c(1,2,1,-1),
product_id = 1:4)
purchases.median.order.price(sample.purchases)
# 59500
我写:
library(data.table)
sample.purchases <- data.table(price = c(100000, 6000, 7000, 5000000),
ordernumber = c(1,2,2,3),
quantity = c(1,2,1,-1),
product_id = 1:4)
sample.purchases[quantity>0][, price*quantity, by=ordernumber]
但这是错误的。我不知道我应该如何找出中位数?
【问题讨论】:
标签: r data.table median