【问题标题】:How to keep R code inside page in R markdown output?如何在 R markdown 输出中将 R 代码保留在页面内?
【发布时间】:2020-04-02 21:14:27
【问题描述】:

我试图在 R markdown 中运行以下代码只是为了打印代码。我不想打印 R 代码的结果。代码中的某些行非常大。当我运行时,它运行良好,但是有些行超出了页面?这是R降价代码


title: R code
output: 
  pdf_document:
    toc: true
    number_sections: true
documentclass: article
classoption: 
  - portrait
  - a4paper
---



```{r,eval=F,echo=TRUE}
hrs_data_GS$rSLn==i,\]%*%beta\[k,\])^2/2*sigma2)+
                          sum(z_ij_str\[i\]*xdata\[hrs_data_GS$rSLn==i,\]%*%alpha\[k,\])-
                          0.5*sum(w_ij\[hrs_data_GS$rSLn==i\]*(xdata\[hrs_data_GS$rSLn==i,\]%*%alpha\[k,\])^2)+
                          ( (lamda/sigma2)*sum(hrs_data_GS$y_ij\[hrs_data_GS$z_ij==1 & hrs_data_GS$rSLn==i\]-
                                                 xdata\[hrs_data_GS$z_ij==1 & hrs_data_GS$rSLn==i,\]%*%beta\[k,\])
                            +sum_z_ij_str\[i\]- sum(w_ij\[hrs_data_GS$rSLn==i\]*
                                                    xdata\[hrs_data_GS$rSLn==i,\]%*%alpha\[k,\]))^2*
                          2*((n_i\[i\]*lamda^2/sigma2)+sum_w_ij_j\[i\]+1/sig2.theta)^-1)+
          (log(pi_cls\[i,k\]))  #(log(pi_k\[k\]))  
      }
    }
    nume_prod<-nume_prod-apply(nume_prod,1,max) #it works 
    nume_prod <- exp(nume_prod)
    prob_cls_rsum=apply(nume_prod, 1, sum) 
    prob_cls=nume_prod/ prob_cls_rsum 
    #cls=miscF::rMultinom(p=cbind(prob_cls)) #miscF is not available at CRC
    cls=Hmisc::rMultinom(p=cbind(prob_cls),1)  
    #Update sum_y.ij_j and sum_wxa_ij_j before updating the theta
    #these values involve 'cls'
    #******
    for (i in 1:m){ 
      #1**********
      sum_y.ij_j\[i\]<-(lamda/sigma2)*sum((hrs_data_GS$y_ij\[hrs_data_GS$z_ij==1 & hrs_data_GS$rSLn==i\]-
                                           xdata\[hrs_data_GS$z_ij==1 & hrs_data_GS$rSLn==i,\]%*%beta\[cls\[i\],\])
      ) #conditioning on z_ij==1
      #2******
      sum_wxa_ij_j\[i\]<-sum((w_ij\[hrs_data_GS$rSLn==i\]*
                              xdata\[hrs_data_GS$rSLn==i,\]%*%
                              alpha\[cls\[i\],\])
      )
    }
    #Update theta_i
    theta_i=rnorm(m, #number of thetas 
                  (sum_z_ij_str-sum_wxa_ij_j+sum_y.ij_j)*
                    (((1/sig2.theta)+sum_w_ij_j+((lamda^2/sigma2)*n_i_z1))^-1), #mean  
                  sqrt((((1/sig2.theta)+sum_w_ij_j+((lamda^2/sigma2)*n_i_z1))^-1)) #std 


```

这是输出

我想保留页面内的所有代码。有什么办法可以为所有块做吗?

【问题讨论】:

  • 您可以通过在文件正文中添加\fontsize{5.5}{8} 之类的内容来缩小字体
  • 与换行不同,水平滚动条要好得多。如果您只想遵循这一点,您应该将一行的某些部分移到下一行并相应地缩进。转换成较小的字体可能会使其不可读。考虑转换为 HTML 文档或小插图以获得更好的结果。

标签: r r-markdown word-wrap


【解决方案1】:

我想你在找width.cutoff

您可以在顶部更改块选项:

library(formatR)
```{r, tidy=TRUE, tidy.opts=list(width.cutoff=60), eval = FALSE, echo = TRUE}

【讨论】:

  • 产生与此警告消息相同的结果Warning message: In block_exec(params) : Failed to tidy R code in chunk 'unnamed-chunk-1'. Reason: Error in parse(text = lines, keep.source = TRUE) : &lt;text&gt;:1:20: unexpected ',' 1: hrs_data_GS$rSLn==i, ^
【解决方案2】:

将 ``` 添加到文档的末尾,由于某种原因我无法显示它们。不同的文档格式,但您只需要从浏览器打印成 PDF

---

title: R code

output: html_document

---




```{r,,eval=F,echo=TRUE, fig.width=40}
hrs_data_GS$rSLn==i,\]%*%beta\[k,\])^2/2*sigma2)+
                          </br> sum(z_ij_str\[i\]*xdata\[hrs_data_GS$rSLn==i,\]%*%alpha\[k,\])-
                          0.5*sum(w_ij\[hrs_data_GS$rSLn==i\]*(xdata\[hrs_data_GS$rSLn==i,\]%*%alpha\[k,\])^2)+
                       ( (lamda/sigma2)*sum(hrs_data_GS$y_ij\[hrs_data_GS$z_ij==1 & hrs_data_GS$rSLn==i\]-
                                              xdata\[hrs_data_GS$z_ij==1 & hrs_data_GS$rSLn==i,\]%*%beta\[k,\])
                            +sum_z_ij_str\[i\]- sum(w_ij\[hrs_data_GS$rSLn==i\]*
                                                    xdata\[hrs_data_GS$rSLn==i,\]%*%alpha\[k,\]))^2*
                          2*((n_i\[i\]*lamda^2/sigma2)+sum_w_ij_j\[i\]+1/sig2.theta)^-1)+
          (log(pi_cls\[i,k\]))  #(log(pi_k\[k\]))  
      }
    }
    nume_prod<-nume_prod-apply(nume_prod,1,max) #it works 
    nume_prod <- exp(nume_prod)
    prob_cls_rsum=apply(nume_prod, 1, sum) 
    prob_cls=nume_prod/ prob_cls_rsum 
    #cls=miscF::rMultinom(p=cbind(prob_cls)) #miscF is not available at CRC
    cls=Hmisc::rMultinom(p=cbind(prob_cls),1)  
    #Update sum_y.ij_j and sum_wxa_ij_j before updating the theta
    #these values involve 'cls'
    #******
    for (i in 1:m){ 
      #1**********
      sum_y.ij_j\[i\]<-(lamda/sigma2)*sum((hrs_data_GS$y_ij\[hrs_data_GS$z_ij==1 & hrs_data_GS$rSLn==i\]-
    xdata\[hrs_data_GS$z_ij==1 & hrs_data_GS$rSLn==i,\]%*%beta\[cls\[i\],\])
      ) #conditioning on z_ij==1
      #2******
      sum_wxa_ij_j\[i\]<-sum((w_ij\[hrs_data_GS$rSLn==i\]*
                              xdata\[hrs_data_GS$rSLn==i,\]%*%
                              alpha\[cls\[i\],\])
      )
    }
    #Update theta_i
    theta_i=rnorm(m, #number of thetas 
                  (sum_z_ij_str-sum_wxa_ij_j+sum_y.ij_j)*
                    (((1/sig2.theta)+sum_w_ij_j+((lamda^2/sigma2)*n_i_z1))^-1), #mean  
                  sqrt((((1/sig2.theta)+sum_w_ij_j+((lamda^2/sigma2)*n_i_z1))^-1)) #std

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    相关资源
    最近更新 更多