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/todemoread_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., <