/
examples-header.R
66 lines (65 loc) · 2.78 KB
/
examples-header.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
### * <HEADER>
###
attach(NULL, name = "CheckExEnv")
assign("nameEx",
local({
s <- "__{must remake R-ex/*.R}__"
function(new) {
if(!missing(new)) s <<- new else s
}
}),
pos = "CheckExEnv")
## Add some hooks to label plot pages for base and grid graphics
assign("base_plot_hook",
function() {
pp <- par(c("mfg","mfcol","oma","mar"))
if(all(pp$mfg[1:2] == c(1, pp$mfcol[2]))) {
outer <- (oma4 <- pp$oma[4]) > 0; mar4 <- pp$mar[4]
mtext(sprintf("help(\"%s\")", nameEx()), side = 4,
line = if(outer)max(1, oma4 - 1) else min(1, mar4 - 1),
outer = outer, adj = 1, cex = .8, col = "orchid", las=3)
}
},
pos = "CheckExEnv")
assign("grid_plot_hook",
function() {
grid::pushViewport(grid::viewport(width=grid::unit(1, "npc") -
grid::unit(1, "lines"), x=0, just="left"))
grid::grid.text(sprintf("help(\"%s\")", nameEx()),
x=grid::unit(1, "npc") + grid::unit(0.5, "lines"),
y=grid::unit(0.8, "npc"), rot=90,
gp=grid::gpar(col="orchid"))
},
pos = "CheckExEnv")
setHook("plot.new", get("base_plot_hook", pos = "CheckExEnv"))
setHook("persp", get("base_plot_hook", pos = "CheckExEnv"))
setHook("grid.newpage", get("grid_plot_hook", pos = "CheckExEnv"))
assign("cleanEx",
function(env = .GlobalEnv) {
rm(list = ls(envir = env, all.names = TRUE), envir = env)
RNGkind("default", "default")
set.seed(1)
options(warn = 1)
.CheckExEnv <- as.environment("CheckExEnv")
delayedAssign("T", stop("T used instead of TRUE"),
assign.env = .CheckExEnv)
delayedAssign("F", stop("F used instead of FALSE"),
assign.env = .CheckExEnv)
sch <- search()
newitems <- sch[! sch %in% .oldSearch]
if(length(newitems)) tools:::detachPackages(newitems)
missitems <- .oldSearch[! .oldSearch %in% sch]
if(length(missitems))
warning("items ", paste(missitems, collapse=", "),
" have been removed from the search path")
},
pos = "CheckExEnv")
assign("ptime", proc.time(), pos = "CheckExEnv")
## Do this before loading the package,
## since packages have been known to change settings.
## Force a size that is close to on-screen devices, fix paper.
## don't rename par.postscript for back-compatibility of reference output.
grDevices::pdf.options(width = 7, height = 7, paper = "special", reset = TRUE)
grDevices::pdf(paste(pkgname, "-Ex.pdf", sep=""), encoding = "ISOLatin1")
assign("par.postscript", graphics::par(no.readonly = TRUE), pos = "CheckExEnv")
options(contrasts = c(unordered = "contr.treatment", ordered = "contr.poly"))