# Example 7: Page By

### Create a Table with a By-Group

A page by variable will split the report into pages by a variable, and label each page according the variable value. The page by can be assigned to the report, to a table, or to a plot. The page by label will appear between the titles and the content body. It can be aligned left, right, or center. The data should be sorted by the page by variable prior to reporting.

    library(reporter)

    # Create temp file name
    tmp <- file.path(tempdir(), "example7.pdf")

    # Prepare data
    dat <- mtcars[order(mtcars$cyl), ]
    dat <- data.frame(vehicle = rownames(dat), dat)

    # Define table
    tbl <- create_table(dat, show_cols = 1:8) %>%
      page_by(cyl, label="Cylinders: ")

    # Create the report
    rpt <- create_report(tmp, output_type = "PDF",
                         font = "Courier", font_size = 12) %>%
      page_header(left = "Client: Motor Trend", right = "Study: Cars") %>%
      titles("Listing 3.0", "MTCARS Data Listing with Page By") %>%
      set_margins(top = 1, bottom = 1) %>%
      add_content(tbl) %>%
      page_footer(left = Sys.time(),
              center = "Confidential",
              right = "Page [pg] of [tpg]")

    # Write the report
    write_report(rpt)

    # file.show(tmp)

Next: Example 8: Title Header