问题是函数plot.lordif()中存在dev.new()!您可以通过以下方式进行检查:
> as.list(body(plot.lordif))
并在第九部分发现dev.new():
> body(plot.lordif)[[9]]
# if (sysname == "Windows") {
# dev.new(width = width, height = height, record = TRUE)
# } else if (sysname == "Linux") {
# dev.new(width = width, height = height)
# par(ask = TRUE)
# } else {
# dev.new(width = width, height = height)
# }
dev.new() 防止 markdown 显示您的绘图。
所以只需摆脱这部分并覆盖该功能。
你可以尝试通过调整函数体来修改函数:
> body(plot.lordif)[[9]] <- NULL
要在 Markdown 中实现这一点,您可以添加一个额外的块,而不是使用 echo = FALSE 在您的文档中显示它。
```{r echo = FALSE}
library(lordif)
body(plot.lordif)[[9]] <- NULL
```
```{r}
data(Anxiety)
age.dif <- lordif(Anxiety[paste("R",1:29,sep="")],Anxiety$age)
plot.lordif(age.dif,labels=c("Younger","Older"),width=8,height=7,cex=0.8,lwd=1)
```