Let's say I have script.R
that contains:
x <- data.frame(
a = 1:10,
b = 11:20
)
y <- rnorm(100)
I want to just show the first 4 lines that relate to x
, in a chunk of an RMarkdown document.
{R, file = "script.R"}
as a knitr option will include the entire file, which I don't want{R, code = xfun::read_all("script.R")[1:4]}
does let me subset the file, but it prints the result as an R vector with line numbers, rather than formatting it as source code```{R, results="asis"}
readLines("test.R")[1:4] |>
c("```{r}", content=_, "```") |>
paste(collapse = "\n") |>
cat()
read_chunk
. This should work, but I dislike having to have two chunks when I only want one:
```{r, include=FALSE, cache=FALSE}
knitr::read_chunk('script.R', labels="chunk-a", from=1, to=4)
```
```{r, chunk-a}
```
Is this what you want?
```{r, code = readLines("test.R")[1:4]}
```
Edit
Or maybe this is cleaner:
```{r, code = readLines("test.R", n = 4)}
```