从事务日志中提取事务类型
Posted
技术标签:
【中文标题】从事务日志中提取事务类型【英文标题】:pulling type of transaction out of transaction log 【发布时间】:2017-03-10 11:43:11 【问题描述】:我有一个问题,数据来自相关数据库,但没有内置识别交易类型(A-only、B-only 或 A&B)的功能。
我在 R 中以不相关的结构工作。 交易日志是一个带有文章的日志(有 Maingroups),还有一行用于支付类型(留空)。根据主组,它是 A 或 B 观察。
我已经编写了一小部分代码来检查。我的问题是我想摆脱这个告诉我的集合:
事务 1 仅限 A 事务 2 仅限 B 事务 3 是 A&B 事务 4 是 A&B我必须在包含大约 1600 万个观测值的数据集上执行此操作。
trans.log <- c(1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4)
trans.log <- as.data.frame(trans.log)
trans.log$Maingroup <-c(1,1, "", 2, 4, "", 3, 1, 4, "", 1, 2, "")
trans.log[(trans.log$Maingroup %in% 1), "AorB"] <- "A"
trans.log[(trans.log$Maingroup %in% 2), "AorB"] <- "B"
trans.log[(trans.log$Maingroup %in% 3), "AorB"] <- "B"
trans.log[(trans.log$Maingroup %in% 4), "AorB"] <- "B"
trans.log[(trans.log$Maingroup %in% 6), "AorB"] <- "B"
trans.log[(trans.log$Maingroup %in% 7), "AorB"] <- "B"
【问题讨论】:
【参考方案1】:昨晚之后,我找到了自己的遮阳篷。
trans.log1 <- trans.log %>% group_by(JournalHeaderId, AorB)
%>% summarise(aantal=n())
# nieuwe kolommen maken voor de aantallen A / B per transactie
trans.log2 <- trans.log1 %>% spread(AorB, value = aantal)
# nieuwe kolommen maken voor als B is NA of F is NA
trans.log3 <- trans.log2 %>% mutate(Bonly=(B>= 1 & is.na(A)),
Aonly=(A>=1 & is.na(B)), AB=(B>=1 & A>=1),
NonX=(NX>=1), other = (is.na(B) & is.na(A) & is.na(NX)))
【讨论】:
以上是关于从事务日志中提取事务类型的主要内容,如果未能解决你的问题,请参考以下文章