1

I am attempting to implement Benford’s Law using the benford.analysis package in R across all vendors’ invoices. Over the entire dataset the data confirms. I’m trying to find a way to group by vendor to determine if any individual vendor is displaying fraud indicators by not conforming. Is there a way to break out non-conforming by group?

coult
  • 117
  • 1
  • 2
  • 6

1 Answers1

1

Here is a way to use group_by and group_map to create benford.analysis plots for each group. In this example, grouping Iris data by Species and performing analysis on Sepal Length variable.

In group_map(), .x means the grouped subset data, and .y means the name of the group.

library(dplyr)
library(benford.analysis)
iris %>% 
  group_by(Species) %>% 
  group_map(.f = ~ plot(benford(.x$Sepal.Length)))
M.Viking
  • 5,067
  • 4
  • 17
  • 33
  • That worked great! The only thing I’m trying to work out now is how to label the plots by vendor. We have a lot of vendors and the blank plots on their own are impossible to sort out – coult Jun 28 '22 at 00:22
  • Check out the modified version in this Q&A - https://stackoverflow.com/q/56936984/10276092 . (ps. The latest "GitHub" version doesn't make a legend for me) – M.Viking Jun 28 '22 at 16:06