我有这个数据集:
test <- data.frame("Event" = c("A", "B", "C","D","E"),"startTime" = c("2017-08-01 00:37:27", "2017-08-01 00:44:32", "2017-08-01 23:30:00","2017-08-01 23:55:47", "2017-08-02 01:00:00" ), "endTime" = c("2017-08-01 20:13:13", "2017-08-01 21:30:45", "2017-08-02 09:00:00","2017-08-01 23:56:47", "2017-08-02 04:18:38"), "Bin" = c(1,1,2,1,2))
我想创建一个列Bin,您可以根据startTime和endTime的24小时帧将值1分配给n。例如,事件A和B属于Bin(组)#1,因为它们都在2017-08-01开始并在同一天结束。但是,事件C属于bin#2,因为它在第二天而不是2017-08-01结束。事件D属于bin#2,因为它在2017-08-02开始和结束,依此类推。
我不知道如何根据此逻辑正确分配组值。任何帮助将不胜感激!谢谢!
答案 0 :(得分:0)
这有效:
CREATE PROCEDURE my_sp AS
IF EXISTS (SELECT * FROM NetNewCustomers) DROP TABLE NetNewCustomers;
WITH NetNewCustomers AS
(
SELECT
CustomerId
, DateFirstPurchase
, PurchaseDate
, PurchaseId
FROM
AllCustomerPurchases
WHERE
PurchaseDate = DateFirstPurchase
)
SELECT
*
INTO
[GuitarMarketing].[dbo].[NetNewCustomers]
FROM
(
SELECT
*
FROM
NetNewCustomers
)
AS CTE
END
答案 1 :(得分:0)
这里,bin2是从endTime的最小值开始的天数。
test %>%
mutate(bin2 = as.integer(as.Date(endTime) - min(as.Date(endTime))) + 1)