从事务日志中提取事务类型

时间:2017-03-10 11:43:11

标签: r function loops dataframe bigdata

我遇到了问题,数据来自相关数据库,但识别交易类型的功能(仅限A,仅限B或A& B)并未构建。

我在R中以非相关结构工作。 事务日志是包含文章的日志(具有Maingroup),还有一行付款类型(左侧空白)。根据Maingroup,它是A或B观察。

我已经编写了一小部分代码来检查。我的问题我想摆脱这个告诉我的一套:

  • 交易1是仅限A
  • 交易2是B-only
  • 交易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 个答案:

答案 0 :(得分:0)

昨晚之后,我找到了自己的芒果。

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)))