read_demo()
is a convenience function to
read a demo script from a package.read_chunk(path, lines = readLines(path, warn = FALSE), labels = NULL, from = NULL,
to = NULL, from.offset = 0L, to.offset = 0L)read_demo(topic, package = NULL, ...)
path
)NULL
)from
/to
demo
read_chunk
## @knitr chunk-label} in the script; (2) Manually
specify the labels, starting and ending positions of code
chunks in the script. The second approach will be used only when labels
is not NULL
. For this approach, if from
is
NULL
, the starting position is 1; if to
is
NULL
, each of its element takes the next element
of from
minus 1, and the last element of to
will be the length of lines
(e.g. when from
= c(1, 3, 8)
and the script has 10 lines in total,
to
will be c(2, 7, 10)
). Alternatively,
from
and to
can be character vectors as
regular expressions to specify the positions; when their
length is 1, the single regular expression will be
matched against the lines
vector, otherwise each
element of from
/to
is matched against
lines
and the match is supposed to be unique so
that the numeric positions returned from grep()
will be of the same length of from
/to
. Note
labels
always has to match the length of
from
and to
.
cache = FALSE
),
and the code is read and stored in the current session
without being executed (to actually run the code,
you have to use a chunk with a corresponding label).## @knitr my-label 1 + 1 lm(y ~ x, data = data.frame(x = 1:10, y = rnorm(10)))
## later you can use <
## the 2nd approach code = c("#@a", "1+1", "#@b", "#@a", "rnorm(10)", "#@b") read_chunk(lines = code, labels = "foo") # put all code into one chun named foo read_chunk(lines = code, labels = "foo", from = 2, to = 2) # line 2 into chunk foo read_chunk(lines = code, labels = c("foo", "bar"), from = c(1, 4), to = c(3, 6)) read_chunk(lines = code, labels = c("foo", "bar"), from = c(1, 4)) # automatically figure out 'to' read_chunk(lines = code, labels = c("foo", "bar"), from = "^#@a", to = "^#@b") read_chunk(lines = code, labels = c("foo", "bar"), from = "^#@a", to = "^#@b", from.offset = 1, to.offset = -1)
## later you can use, e.g., <