1

使用时,pairs()我喜欢使用建议的函数panel.corpanel.hist(在示例中建议)来消除重复的上三角空间或下三角空间并提供额外信息。

我想使用类似的东西来获取这些功能

source(example(pairs, ask = F, echo = F))

并且没有得到任何输出(包括:)Error in readLines(file, warn = FALSE) : 'con' is not a connection并且没有打印示例图。这可能吗?

正如我旁注的那样,我不想打印这些图的原因是我想在R Markdown 文件中使用它,而不必查看example(pairs)我的文档中的图。

4

1 回答 1

2

您可以运行一个不包括在内的块,并且不保留数字。这些函数将在代码运行时可用,但输出不包含在文档中。

```{r example_pairs, include = F, fig.keep = 'none'}
example(pairs)
```

```{r test}
exists('panel.cor')
```

输出看起来像

存在(“panel.cor”)
## [1] TRUE

panel.cor存在于全球环境中——你可以使用它。

编辑替代

您也可以使用give.lines参数并自己保存源代码

.ex <- example(pairs, give.lines = T)
# find the code in question (look for assignment / scope delimiters)
which(grepl(.ex, pattern = "(panel.hist <-)|(panel.cor <-)|[{}]"))
##[1] 18 19 26 33 34 42

cat(.ex[c(18:26, 33:42)], sep = "\n")
panel.hist <- function(x, ...)
{
    usr <- par("usr"); on.exit(par(usr))
    par(usr = c(usr[1:2], 0, 1.5) )
    h <- hist(x, plot = FALSE)
    breaks <- h$breaks; nB <- length(breaks)
    y <- h$counts; y <- y/max(y)
    rect(breaks[-nB], 0, breaks[-1], y, col="cyan", ...)
}
panel.cor <- function(x, y, digits=2, prefix="", cex.cor, ...)
{
    usr <- par("usr"); on.exit(par(usr))
    par(usr = c(0, 1, 0, 1))
    r <- abs(cor(x, y))
    txt <- format(c(r, 0.123456789), digits=digits)[1]
    txt <- paste(prefix, txt, sep="")
    if(missing(cex.cor)) cex.cor <- 0.8/strwidth(txt)
    text(0.5, 0.5, txt, cex = cex.cor * r)
}
于 2012-08-29T04:02:17.693 回答