Skip to content

Commit

Permalink
docs
Browse files Browse the repository at this point in the history
  • Loading branch information
graemeblair committed Jan 24, 2018
1 parent bba2bca commit 3048671
Show file tree
Hide file tree
Showing 25 changed files with 1,171 additions and 179 deletions.
61 changes: 61 additions & 0 deletions docs/articles/advanced_features.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
## ---- echo=FALSE---------------------------------------------------------
options(digits=2)
set.seed(19861108)
library(fabricatr)

## ----echo=TRUE, results="hide"-------------------------------------------
variable_data <-
fabricate(
cities = add_level(N = 2, elevation = runif(n = N, min = 1000, max = 2000)),
citizens = add_level(N = c(2, 4), age = runif(N, 18, 70))
)
variable_data

## ----echo=FALSE----------------------------------------------------------
knitr::kable(variable_data)

## ----echo=TRUE, results="hide"-------------------------------------------
my_data <-
fabricate(
cities = add_level(N = 2, elevation = runif(n = N, min = 1000, max = 2000)),
citizens = add_level(N = sample(1:6, size = 2, replace = TRUE), age = runif(N, 18, 70))
)
my_data

## ----echo=FALSE----------------------------------------------------------
knitr::kable(my_data)

## ----echo=TRUE, results="hide"-------------------------------------------
variable_n <- fabricate(
cities = add_level(N = 5, population = runif(N, 10, 200)),
citizens = add_level(N = round(population * 0.3))
)

## ----echo=FALSE----------------------------------------------------------
knitr::kable(head(variable_n))

## ---- message=FALSE, echo=TRUE, results="hide"---------------------------
library(dplyr)

my_data <-
fabricate(
cities = add_level(N = 2, elevation = runif(n = N, min = 1000, max = 2000)),
citizens = add_level(N = c(2, 3), age = runif(N, 18, 70))
) %>%
group_by(cities) %>%
mutate(pop = n())

my_data

## ----echo=FALSE----------------------------------------------------------
knitr::kable(my_data)

## ----echo=TRUE, results="hide"-------------------------------------------
my_data <-
data_frame(Y = sample(1:10, 2)) %>%
fabricate(lower_level = add_level(N = 3, Y2 = Y + rnorm(N)))
my_data

## ----echo=FALSE----------------------------------------------------------
knitr::kable(my_data)

6 changes: 3 additions & 3 deletions docs/articles/advanced_features.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

104 changes: 104 additions & 0 deletions docs/articles/building_importing.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
## ---- echo=FALSE---------------------------------------------------------
options(digits = 2, scipen = 8)
knitr::knit_hooks$set(inline = function(x) {
prettyNum(x, decimal.mark = ".", big.mark = ",")
})
set.seed(19861108)
library(fabricatr)

## ----echo=TRUE, results="hide"-------------------------------------------
library(fabricatr)
my_data <- fabricate(N = 5, Y = runif(N), Y2 = Y * 5)
my_data

## ----echo=FALSE----------------------------------------------------------
knitr::kable(my_data)

## ----echo=TRUE, results="hide"-------------------------------------------
simulated_quake_data <- fabricate(
data = quakes,
fatalities = round(pmax(0, rnorm(N, mean = mag)) * 100),
insurance_cost = fatalities * runif(N, 1000000, 2000000)
)
head(simulated_quake_data)

## ----echo=FALSE----------------------------------------------------------
knitr::kable(head(simulated_quake_data[, c(1, 2, 3, 4, 5, 7, 8)]), format.args = list(big.mark = ","))

## ----echo=TRUE, results="hide"-------------------------------------------
country_data <-
fabricate(
countries = add_level(
N = 5,
gdp_per_capita = runif(N, min = 10000, max = 50000),
life_expectancy = 50 + runif(N, 10, 20) + ((gdp_per_capita > 30000) * 10)
),
provinces = add_level(
N = 10,
natural_resources = draw_binary(prob = 0.3, N = N),
manufacturing = draw_binary(prob = 0.7, N = N)
)
)
head(country_data)

## ----echo=FALSE----------------------------------------------------------
knitr::kable(head(country_data), format.args=list(big.mark = ","))

## ----echo=TRUE, results="hide"-------------------------------------------
citizen_data <-
fabricate(
data = country_data,
citizens = add_level(
N = 10,
salary = rnorm(
N,
mean = gdp_per_capita + natural_resources * 5000 + manufacturing * 5000,
sd = 10000
)
)
)
head(citizen_data)

## ----echo=FALSE----------------------------------------------------------
knitr::kable(head(citizen_data), format.args=list(big.mark = ","))

## ----echo=TRUE, results="hide"-------------------------------------------
new_country_data <-
fabricate(
data = country_data,
countries = modify_level(average_temperature = runif(N, 30, 80))
)

head(new_country_data)

## ----echo=FALSE----------------------------------------------------------
knitr::kable(head(new_country_data), format.args=list(big.mark = ","))

## ----echo=TRUE, results="hide"-------------------------------------------
new_citizen_data <-
fabricate(
data = citizen_data,
countries = modify_level(average_temperature = runif(N, 30, 80)),
provinces = modify_level(
conflict_zone = draw_binary(N, prob = 0.2 + natural_resources * 0.3),
infant_mortality = runif(N, 0, 10) + conflict_zone * 10 +
(average_temperature > 70) * 10
),
citizens = modify_level(
college_degree = draw_binary(N, prob = 0.4 - (0.3 * conflict_zone))
)
)

## ----echo=TRUE, results="hide"-------------------------------------------
ave_example <- fabricate(
cities = add_level(N = 2),
citizens = add_level(
N = 1:2, income = rnorm(N),
income_mean_city = ave(income, cities)
)
)
ave_example

## ----echo=FALSE----------------------------------------------------------
knitr::kable(ave_example)

5 changes: 5 additions & 0 deletions docs/articles/common_social.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## ---- echo=FALSE---------------------------------------------------------
options(digits=2)
set.seed(19861108)
library(fabricatr)

155 changes: 155 additions & 0 deletions docs/articles/cross_classified.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
## ---- echo=FALSE---------------------------------------------------------
options(digits=2)
set.seed(19861108)
library(fabricatr)

## ----eval=TRUE, echo=FALSE, fig.width=5, fig.height=3, message=FALSE, error=FALSE----
invisible(library(diagram))
names <- c("Country", "Year", "Observation")
relationship_matrix <- matrix(c(
0, 0, "",
0, 0, "",
0, 0, 0
), ncol = 3, byrow = TRUE)

par(mar = c(0, 0, 0, 0))
plotmat(
relationship_matrix,
pos = c(2, 1),
curve = 0,
name = names,
box.type = "square",
lwd = 1,
box.lwd = 2,
cex.txt = 0.8,
box.size = 0.15,
box.prop = 0.5
)

## ----eval=FALSE, echo=TRUE, results="hide"-------------------------------
# panels <- fabricate(
# countries = add_level(N = 150, country_fe = runif(N, 1, 10)),
# years = add_level(N = 25, year_shock = runif(N, 1, 10), nest = FALSE),
# ...
# )

## ----eval=FALSE, echo=TRUE, results="hide"-------------------------------
# example_data <- fabricate(
# list(data_frame_1, data_frame_2),
# ...
# )

## ----eval=FALSE, echo=TRUE, results="hide"-------------------------------
# panels <- fabricate(
# countries = add_level(N = 150, country_fe = runif(N, 1, 10)),
# years = add_level(N = 25, year_shock = runif(N, 1, 10), nest = FALSE),
# obs = cross_levels(
# by = join(countries, years),
# new_variable = country_fe + year_shock + rnorm(N, 0, 2)
# )
# )

## ----eval=TRUE, echo=FALSE, fig.width=5, fig.height=3, message=FALSE, error=FALSE----
invisible(library(diagram))
names <- c("PrimarySchool", "SecondarySchool", "Student")
relationship_matrix <- matrix(c(
0, 0, "",
0, 0, "",
0, 0, 0
), ncol = 3, byrow = TRUE)

par(mar = c(0, 0, 0, 0))
plotmat(
relationship_matrix,
pos = c(2, 1),
curve = 0,
name = names,
box.type = "square",
lwd = 1,
box.lwd = 2,
cex.txt = 0.8,
box.size = 0.15,
box.prop = 0.5
)

## ----echo=TRUE, results="hide"-------------------------------------------
schools_data <- fabricate(
primary_schools = add_level(N = 20, ps_quality = runif(N, 1, 10)),
secondary_schools = add_level(N = 15, ss_quality = runif(N, 1, 10), nest = FALSE),
students = link_levels(N = 1500, by = join(primary_schools, secondary_schools))
)

## ----echo=TRUE, results="hide"-------------------------------------------
schools_data <- fabricate(
primary_schools = add_level(N = 20, ps_quality = runif(N, 1, 10)),
secondary_schools = add_level(N = 15, ss_quality = runif(N, 1, 10), nest = FALSE),
students = link_levels(
N = 1500, by = join(primary_schools, secondary_schools),
SAT_score = 800 + 13 * ps_quality + 26 * ss_quality +
rnorm(N, 0, 50)
)
)

## ----echo=TRUE, results="hide"-------------------------------------------
lm(SAT_score ~ ps_quality + ss_quality, data = schools_data)

## ----echo=FALSE----------------------------------------------------------
knitr::kable(summary(lm(SAT_score ~ ps_quality + ss_quality, data = schools_data))$coefficients)

## ----echo=TRUE, results="hide"-------------------------------------------
corr_data <- fabricate(
primary_schools = add_level(N = 20, ps_quality = runif(N, 1, 10)),
secondary_schools = add_level(N = 15, ss_quality = runif(N, 1, 10), nest = FALSE),
students = link_levels(
N = 1500, by = join(ps_quality, ss_quality, rho = 0.5),
SAT_score = 800 + 13 * ps_quality + 26 * ss_quality +
rnorm(N, 0, 50)
)
)

## ----echo=TRUE, results="hide"-------------------------------------------
cor(corr_data$ps_quality, corr_data$ss_quality)

## ----echo=TRUE, results="hide"-------------------------------------------
three_data <- fabricate(
primary_schools = add_level(N = 20, ps_quality = runif(N, 1, 10)),
secondary_schools = add_level(N = 15, ss_quality = runif(N, 1, 10), nest = FALSE),
colleges = add_level(N = 50, c_quality = runif(N, 1, 10), nest = FALSE),
students = link_levels(
N = 1500,
by = join(
ps_quality, ss_quality, c_quality,
rho = 0.2
),
earning_potential = 20000 + (2000 * ps_quality) +
(6000 * ss_quality) + (10000 * c_quality) +
rnorm(N, 0, 5000)
)
)

## ----echo=TRUE, results="hide"-------------------------------------------
sigma <- matrix(
c(
1, 0.4, 0.2,
0.4, 1, 0.8,
0.2, 0.8, 1
),
ncol = 3, nrow = 3
)

adv_data <- fabricate(
primary_schools = add_level(N = 20, ps_quality = runif(N, 1, 10)),
secondary_schools = add_level(N = 15, ss_quality = runif(N, 1, 10), nest = FALSE),
colleges = add_level(N = 50, c_quality = runif(N, 1, 10), nest = FALSE),
students = link_levels(
N = 1500,
by = join(
ps_quality, ss_quality, c_quality,
sigma = sigma
),
earning_potential = 20000 + (2000 * ps_quality) +
(6000 * ss_quality) + (10000 * c_quality) +
rnorm(N, 0, 5000)
)
)

2 changes: 1 addition & 1 deletion docs/articles/cross_classified.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 3048671

Please sign in to comment.