【发布时间】:2016-02-18 05:44:40
【问题描述】:
今天是我在 R 的第一天 - 您的建议将大有帮助。
我正在尝试根据预订活动创建用户的聚合视图。
在 bookings 表中提取唯一的 CustID。为客户创建新的 DF。
customer <- with(BookingsDF,data.frame(CustID=sort(unique(CustID))))
将客户表中的每个 CustID 添加到他们已交易的次数。
customer <- cbind(customer, NumberOrders = with(BookingsDF,
as.numeric (by (id, CustID, function(x) length(unique(x))))))
这会生成一条错误消息
data.frame(..., check.names = FALSE) 中的错误:参数暗示 不同的行数:373545、391910
这没有意义 - 2 个查询如何输出不同的长度?考虑到第一个查询提取唯一 CustID,第二个查询提取每个唯一 CustID 已预订的次数。
谢谢。
最终:感谢您的帮助。我已将代码更新为:
customer <- booked.dt[,{
FirstPurchaseDate = .SD[which.min(CreatedDate)]
LastPurchaseDate = .SD[which.max(CreatedDate)]
NumberOrders = .N
TotalAmount = sum(Price)
} , by = CustID]
很遗憾,这需要很长时间来处理。所以我只好通过SQL进行操作,然后将聚合数据上传到R。
【问题讨论】:
-
by的输出将是list
标签: r