如何在R Markdown输出中将R代码保留在页面内?

5

我正在尝试在R Markdown中运行以下代码,只打印代码而不是R代码的结果。有些代码行非常长。当我运行时,它完美地工作,但有些行超出了页面范围?以下是R Markdown代码:

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 


```

这是输出结果 R markdown output 我想保留页面内的所有代码。 有没有一种方法可以为所有代码块执行此操作?

你可以通过在文件主体中添加类似于“\fontsize{5.5}{8}”的内容来缩小字体。 - dave-edison
不要跟随自动换行,使用水平滚动条会更好。如果你只想在一行中写入代码,可以将某些部分移至下一行,并缩进相应的数量。缩小字体可能会导致无法阅读。考虑将其转换为HTML文档或vignette以获得更好的结果。 - user11422223
2个回答

2
我认为你需要查找的是width.cutoff
你可以在顶部更改你的块选项:
library(formatR)
```{r, tidy=TRUE, tidy.opts=list(width.cutoff=60), eval = FALSE, echo = TRUE}

生成相同的结果,但出现了此警告消息: “警告消息: 在 block_exec(params) 中: 在未命名块1中无法整理 R 代码。原因是: Error in parse(text = lines, keep.source = TRUE) : <text>:1:20: unexpected ',' 1: hrs_data_GS$rSLn==i, ^” - Uddin

0
在文档末尾添加```,由于某些原因我无法让它们显示。不同的文档格式,但您只需要从浏览器打印到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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接