使用pairs()
时,我喜欢使用建议的函数panel.cor
和panel.hist
(示例中建议)来消除重复的上三角空间或下三角空间并提供额外信息。
我想使用像
这样的函数来源代码source(example(pairs, ask = F, echo = F))
并且没有得到任何输出(包括:Error in readLines(file, warn = FALSE) : 'con' is not a connection
),和没有打印示例图。这可能吗?
正如我所注意的那样,我希望不打印图表的原因是我想在 R Markdown文件中使用它,而不必查看example(pairs)
我的文件中的情节。
答案 0 :(得分:2)
您可以运行未包含的块,但不保留数字。这些函数将在代码运行时可用,但输出不包含在文档中。
```{r example_pairs, include = F, fig.keep = 'none'}
example(pairs)
```
```{r test}
exists('panel.cor')
```
输出看起来像
exists("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)
}