【问题标题】:R lordif RmarkdownR lordif 降价
【发布时间】:2019-03-25 01:30:19
【问题描述】:

我尝试从lordif 中的绘图方法在rmarkdown 文件中添加绘图。
这是一个简单的例子:

```{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 中。

【问题讨论】:

    标签: r plot r-markdown


    【解决方案1】:

    问题是函数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)
    ```
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-27
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      • 2016-07-25
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多