Imagine Your Data Before You Collect It
Clone or download
graemeblair Nfultz/155 join cbind (#156)
* closes #155

* add test

* CRAN
Latest commit fa31dab Aug 23, 2018

README.md

fabricatr: Imagine your data before you collect it

CRAN Status Travis-CI Build Status AppVeyor Build Status Coverage Status

Making decisions about research design and analysis strategies is often difficult before data is collected, because it is hard to imagine the exact form data will take. Instead, researchers typically modify analysis strategies to fit the data. fabricatr helps researchers imagine what data will look like before they collect it. Researchers can evaluate alternative analysis strategies, find the best one given how the data will look, and precommit before looking at the realized data.

Installing fabricatr

To install the latest stable release of fabricatr, please ensure that you are running version 3.3 or later of R and run the following code:

install.packages("fabricatr")

To install the latest development release of fabricatr, please ensure that you are running version 3.3 or later of R and run the following code:

install.packages("fabricatr", dependencies = TRUE,
                 repos = c("http://r.declaredesign.org", "https://cloud.r-project.org"))

Getting started

Once you have installed fabricatr, you can easily import your own data or generate new data. fabricatr is designed to help you solve two key problems:

  1. Generating variables that look like the real thing, including Likert survey responses, treatment status, demographic variables, and variables correlated by group.
  2. Generating data that are structured like the real thing, including panel data, multi-level ("nested") data or cross-classified data.

fabricatr is easy to learn and easy to read. Consider this example which generates data modeling the United States House of Representatives:

set.seed(1)
library(fabricatr)

house_members <- fabricate(
  party_id = add_level(
    N = 2, party_names = c("Republican", "Democrat"), party_ideology = c(0.5, -0.5),
    in_power = c(1, 0), party_incumbents = c(241, 194)
  ),
  rep_id = add_level(
    N = party_incumbents, member_ideology = rnorm(N, party_ideology, sd = 0.5),
    terms_served = draw_count(N = N, mean = 4),
    female = draw_binary(N = N, prob = 0.198)
  )
)
party_names party_ideology in_power member_ideology terms_served female
Democrat -0.5 0 -1.21 4 1
Democrat -0.5 0 -0.82 3 0
Democrat -0.5 0 -0.42 6 1
Republican 0.5 1 -0.23 7 0
Republican 0.5 1 0.40 2 0

Next Steps

For more information, read our online tutorial to get started with fabricatr. This tutorial will give you a brief overview of fabricatr's main functions and direct you towards your next steps. You can also read our documentation inside R using the command ?fabricate as your entry point.

This project is generously supported by a grant from the Laura and John Arnold Foundation and seed funding from EGAP.