罗迪夫·拉马克当

时间:2018-10-20 10:07:51

标签: r plot r-markdown

我试图通过rmarkdown中的绘图方法在lordif文件中添加绘图。
这是简单的示例:

```{r}

library(lordif) 
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)

```

如果您在控制台上运行代码,则会生成多个图,但是不会在rmarkdown中生成图。

1 个答案:

答案 0 :(得分:0)

问题是函数dev.new()中存在plot.lordif()!您可以使用以下方法进行检查:

> 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()防止降价显示您的情节。 因此,只需摆脱这一部分并覆盖函数即可。

您可以尝试通过调整功能主体来修改功能:

> 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)
```