日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1.5w字的Rmarkdown入门教程汇总

發(fā)布時間:2025/3/15 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.5w字的Rmarkdown入门教程汇总 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

全文1.5w字,預計閱讀時間40min,建議結(jié)合b站視頻一起學習

本文框架

第一章:Rmarkdown 簡介

Rmarkdown 是 R 語言環(huán)境中提供的 markdown 編輯工具,運用 rmarkdown 撰寫文章,既可以像一般的 markdown 編輯器一樣編輯文本,也可以在 rmarkdown 中插入代碼塊,并將代碼運行結(jié)果輸出在 markdown 里。R Markdown 格式,簡稱為 Rmd 格式, 相應的源文件擴展名為.Rmd。輸出格式可以是 HTML、docx、pdf、beamer 等。

前面介紹參考:李東風老師的《R 語言教程》[1]

對于專注于用 R 語言寫報告的數(shù)據(jù)分析師來說,rmarkdown 既提高了數(shù)據(jù)分析工作的便捷性,也提高了數(shù)據(jù)分析報告的復用性。markdown 的教程以及對應的編輯器介紹可見:R溝通|markdown編輯器—Typora(可跳轉(zhuǎn))?這一期主要介紹 Rmarkdown。

1.1官網(wǎng)視頻介紹

先通過官方視頻[2]來看看 Rmarkdown 的介紹。

:該視頻來自官網(wǎng),一般不一定打得開,所以小編為大家著想就下載下來了,以便大家更好地學習。

視頻已經(jīng)非常清楚的介紹了Rmarkdown如何使用,內(nèi)部構造、不同的輸出類型,以及其他拓展(發(fā)布,與github相連)等。我們先對此進行簡單了解即可,之后幾期我會詳細介紹。當然,官網(wǎng)也有一套 Rmarkdown 的入門教程,歡迎大家前去學習,官網(wǎng)截圖如下:

其他參考資料可見這一期推文:R分享|Rmarkdown參考資料分享和自制視頻教程預告(可跳轉(zhuǎn))。knitr 的詳細文檔參見網(wǎng)站knitr 文檔[3]。關于 R Markdown 可參考專著(Xie, Allaire, and Grolemund 2019[4])和(Xie, Dervieux, and Riederer?2020[5])。

RStudio 網(wǎng)站提供了一個 R Markdown 使用cheatsheet下載,可以在公眾號后臺回復cheatsheet,獲得包括rmarkdown在內(nèi)的小抄。Pandoc 的文檔見pandoc 網(wǎng)站[6]

這一期內(nèi)容不多,主要介紹下 Rmarkdown 的基本概念,給出一些參考資料,下一期正式進入 Rmarkdown 的手把手學習。

第二章:Rmarkdown流程演示

2.1. 安裝

假設你已經(jīng)安裝了R[7](R Core Team 2020)和RStudio IDE[8]

不需要RStudio,但建議使用RStudio,因為它可使普通用戶更輕松地使用R Markdown。如果未安裝RStudio IDE,則必須安裝Pandoc(http://pandoc.org),否則不需要單獨安裝Pandoc,因為RStudio已將其捆綁在一起。

接下來,Rstudio中安裝rmarkdown軟件包,可以通過下面任意一種方式:

#?Install?from?CRAN?? install.packages('rmarkdown')??#?Or?if?you?want?to?test?the?development?version,?? #?install?from?GitHub?? if?(!requireNamespace("devtools"))??install.packages('devtools')?? devtools::install_github('rstudio/rmarkdown')??

如果要生成PDF輸出,則需要安裝LaTeX。對于從未安裝過LaTeX的R Markdown用戶,建議安裝TinyTeX[9]

install.packages('tinytex')?? tinytex::install_tinytex()??#?install?TinyTeX??

TinyTeX是一種輕便,可移植,跨平臺,易于維護的LaTeX發(fā)行版。R配套軟件包tinytex可以幫助你在將LaTeX或R Markdown文檔編譯為PDF時自動安裝缺少的LaTeX軟件包,并確保將LaTeX文檔編譯正確的次數(shù)以解決所有交叉引用。

注: 如果TinyTex通過上面代碼無法正常安裝,可以參考張敬信老師的知乎文章:搭建Latex環(huán)境:TinyTex+RStudio https://zhuanlan.zhihu.com/p/328585804如果編譯.rmd格式時出現(xiàn)缺失某些Latex包,可以參考這節(jié)內(nèi)容https://bookdown.org/yihui/rmarkdown-cookbook/install-latex-pkgs.html

2.2. 新建Rmarkdown項目

  • 點擊Rstudio左上角的新建項目,選擇Rmarkdown文件格式,即可建立一個rmarkdown編輯文件 。

  • 新建流程
  • 在彈出的選項框里,可以申明rmarkdown的Title、Author以及默認的輸出文件格式,一般可以選擇HTML、PDF、Word格式,具體見下圖。

  • 在新建的markdown文件里,主要包含三塊內(nèi)容:1).YAML、2).markdown文本、3).代碼塊。

  • rmd主要包含

    1)YAML:是Rmarkdown的頭部文件(上圖1位置),YAML定義了rmarkdwon的性質(zhì),比如title、author、date、指定output文件類型等。

    2)markdown文本:是rmarkdown里的主要內(nèi)容(上圖3位置),由編輯人員按照markdown語法自行編寫文本內(nèi)容。

    3)代碼塊:rmarkdown的一個主要功能是可以執(zhí)行文件內(nèi)的代碼塊(上圖2位置),并將代碼執(zhí)行結(jié)果展示在markdown里。這對撰寫數(shù)據(jù)分析報告帶來了極大的便利。Rmd文件中除了R代碼段以外, 還可以插入Rcpp、Python、Julia、SQL等許多編程語言的代碼段, 常用編程語言還可以與R代碼段進行信息交換。

    這三個部分會在以后做詳細介紹。

    2.3. Rmarkdown的導出

    rmarkdown的導出方法有兩種,一種是依靠Rstudio手動導出,另一種是基于命令行的導出方式。

    手動導出

    手動導出

    手動導出方法很簡單,在完成mardown編輯后,手動點擊上圖紅圈內(nèi)knit按鈕,選擇導出格式類型即可,Rstudio支持導出PDF、html、word三種類型。

    命令行導出

    命令行導出主要依靠rmarkdown::render實現(xiàn),render函數(shù)主要包含如下幾個參數(shù):

    • input:指定需要導出的rmarkdwon文件地址

    • output_format:指定需要導出的文件類型,同樣支持pdf、word、html等多種文件格式。若未指定output_format格式,則輸出rmarkdown文件中output指定的格式類型。

    rmarkdown::render("test.Rmd")??

    2.4. Rstudio界面介紹

    這時Rstudio的界面發(fā)生了一些變化,我們對界面做一些介紹,尤其是最新版本的新功能,視頻介紹已在b站更新(公眾號不能倍速)。

    演示的Rstudio版本為4.0.3

    第三章:圖、表和代碼輸出

    3.1代碼輸出

    1.行內(nèi)代碼

    `r?sin(pi/2)`?

    有趣的案例:

    1)自動更新日期

    date:?"`r?Sys.Date()`" date:?"`r?format(Sys.time(),?'%d?%B,?%Y')`" date:?"Last?compiled?on?`r?format(Sys.time(),?'%d?%B,?%Y')`"

    具體細節(jié)可參考:https://bookdown.org/yihui/rmarkdown-cookbook/update-date.html

    2)文本結(jié)合代碼

    這里一共有`r sum(x)`個人。

    2. 代碼塊

    R代碼塊一般通過{R}來插入,插入代碼段的快捷鍵:win[Ctrl+Alt+I] / mac[option + cmd + I]。其他快捷鍵介紹可看這篇推文:Rstudio常用快捷鍵以及窗口操作有用技巧。

    默認情況下代碼和結(jié)果會在輸出文件中呈現(xiàn)。如果通過參數(shù)來控制代碼塊運行結(jié)果的輸出情況可以在{r }中設置。一般包括代碼及運行結(jié)果的輸出、圖片表格格式定義等。關于代碼段選項,詳見https://yihui.name/knitr/options。

    這里小編給出一些常用的選項,文字版本較難理解的話,請配合我的b站視頻教程。

    • eval和include選項

      加選項eval=FALSE, 可以使得代碼僅顯示而不實際運行。這樣的代碼段如果有標簽, 可以在后續(xù)代碼段中被引用。

      加選項include=FALSE, 則本代碼段僅運行, 但是代碼和結(jié)果都不寫入到生成的文檔中。

    • echo選項:控制了markdown是否顯示代碼塊。若echo=TRUE,則表示代碼塊顯示在markdown文檔顯示代碼塊;反之,代碼塊不出現(xiàn)在輸出結(jié)果中。

    ```{r?echo=FALSE} print(1:5) ```

    結(jié)果為:

    ##?[1]?1?2?3?4?5
    • collapse選項一個代碼塊的代碼、輸出通常被分解為多個原樣文本塊中, 如果一個代碼塊希望所有的代碼、輸出都寫到同一個原樣文本塊中, 加選項collapse=TRUE。例如:

    ```{r?collapse=TRUE} sin(pi/2) cos(pi/2) ```

    結(jié)果為:

    sin(pi/2) ##?[1]?1 cos(pi/2) ##?[1]?6.123032e-17

    代碼和結(jié)果都在一個原樣文本塊中。

    • prompt和comment選項

      prompt=TRUE 代碼用R的大于號提示符開始。如果希望結(jié)果不用井號保護, 使用選項comment=''。

      ```{r?prompt=TRUE,?comment=''} sum(1:5) ```

    結(jié)果為:

    >?sum(1:5) [1]?15
    • results選項

    用選項results=選擇文本型結(jié)果的類型。取值有:

    • markup, 這是缺省選項, 會把文本型結(jié)果變成HTML的原樣文本格式。

    • hide, 運行了代碼后不顯示運行結(jié)果。

    • hold, 一個代碼塊所有的代碼都顯示完, 才顯示所有的結(jié)果。

    • asis, 文本型輸出直接進入到HTML文件中, 這需要R代碼直接生成HTML標簽, knitr包的kable()函數(shù)可以把數(shù)據(jù)框轉(zhuǎn)換為HTML代碼的表格。

    例如:results='hold'的示例:

    ```{r?collapse=TRUE,?results='hold'} sin(pi/2) cos(pi/2) ```

    結(jié)果為:

    sin(pi/2) cos(pi/2) ##?[1]?1 ##?[1]?6.123032e-17
    • 錯誤信息選項

    選項warning=FALSE使得代碼段的警告信息不進入編譯結(jié)果, 而是在控制臺(console)中顯示。有一些擴展包的載入警告可以用這種辦法屏蔽。

    選項error=FALSE可以使得錯誤信息不進入編譯結(jié)果, 而是出錯停止并將錯誤信息在控制臺中顯示。

    選項message=FALSE可以使得message級別的信息不進入編譯結(jié)果, 而是在控制臺中顯示。

    當然還有關于圖片的設置,這個我們放到下面來說

    當然你也可以通過Rstudio界面進行部分參數(shù)的設置(更加便捷):

    具體演示可見[b站]視頻。

    • 全局設置

    若markdown內(nèi)的代碼塊存在一樣的參數(shù)設置,則可以提前設計好全局的代碼塊參數(shù)。全局代碼塊通過`knitr::opts_chunk$set函數(shù)進行設置,一般設置在YAML文件下方,具體見下圖。

    3.2.圖片輸出

    1.插入R代碼生成的圖形

    ```{r,?fig.height?=?8,fig.with?=?6} plot(1:10) ```
  • fig.show :設置了圖片輸出方式

    • fig.show=‘a(chǎn)sis’:表示plot在產(chǎn)生他們的代碼后面

    • fig.show=‘hold’:所有代碼產(chǎn)生的圖片都放在一個完整的代碼塊之后

    • fig.show=‘a(chǎn)nimate’:表示將所有生成的圖片合成一個動畫圖片

      可以參考:https://bookdown.org/yihui/rmarkdown-cookbook/animation.html

    • fig.show=‘hide’:表示產(chǎn)生所有圖片,但是并不展示

    ```{r,?fig.show='animate'} for?(i?in?1:2)?{pie(c(i?%%?2,?6),?col?=?c('red',?'yellow'),?labels?=?NA) }
  • fig.width:設置圖片輸出的寬度

  • fig.height:設置圖片輸出的高度

  • fig.align 設置圖片位置排版格式,默認為left,可以為right或者center

  • fig.cap :設置圖片的標題

  • fig.subcap:設置圖片的副標題

  • out.width和out.height選項指定在輸出中實際顯示的寬和高,如果使用如"90%"這樣的百分數(shù)單位則可以自動適應輸出的大小。

  • 2.插入外部圖形文件

    如果一個圖不是由一個R代碼塊生成的,你可以用兩種方式包含它:

    • 方法一

    使用Markdown語法![caption](path/to/image),你可以使用width和height屬性來設置圖像的大小,例如:

    ![圖的標題](xxx.png){width=50%}

    注意:圖片文件放的位置(如果和rmd同一目錄,則可以直接xxx.png;如果在其他位置記得加上相對路徑)。

    • 方式二

    在source editor情況下,直接外部拉入圖形即可,會自動保存在相對文件夾的images文簡介中,或者點擊圖形按鈕導入。

    • 方式三

    在代碼塊中使用knitr函數(shù)knitr::include_graphics()。圖片尺寸更改與插入R代碼生成的圖形的情況相同。

    ```{r,?echo=FALSE?,?out.width="50%"} knitr::include_graphics("xxx.png") ```

    3.3.表格輸出

    1. 外部表格輸入

    • markdown格式

    • Typora格式

    2. 內(nèi)部代碼輸出的表格

    例子:計算線性回歸后, summary()函數(shù)的輸出中有coefficients一項,是一個矩陣, 如果直接文本顯示比較難看:

    x?<-?1:10;?y?<-?x^2;?lmr?<-?lm(y?~?x) co?<-?summary(lmr)$coefficients print(co)
    • knitr包的 kable()

    knitr包提供了一個 kable() 函數(shù)可以用來把數(shù)據(jù)框或矩陣轉(zhuǎn)化成有格式的表格, 支持HTML、docx、LaTeX等格式。

    可以用knitr包的kable函數(shù)來顯示:

    knitr::kable(co)

    kable()函數(shù)的digits=選項可以控制小數(shù)點后數(shù)字位數(shù), caption=選項可以指定表的標題內(nèi)容。

    • pander包的pander函數(shù)

    其pander()函數(shù)可以將多種R輸出格式轉(zhuǎn)換成knitr需要的表格形式。如

    pander::pander(lmr)

    但是,經(jīng)過試驗發(fā)現(xiàn), 表中中有中文時pander包會出錯。這里參考公眾號[R友舍]

    其他包:tables (Murdoch 2020[10]), pander (Daróczi and Tsegelskyi 2018[11]), tangram (Garbett 2020[12]), ztable (Moon 2020[13]), and condformat (Oller Moreno 2020[14]).等

    3.4.表格渲染

    通過前面可以看到:用knitr::kable()輸出表格結(jié)果其實不是非常美觀,并且很多功能都不能實現(xiàn)。這時我們可以用kableExtra(Zhu 2020[15])、huxtable (Hugh-Jones 2020[16])等擴展包來美化表格。

    其他拓展包可以參考:https://bookdown.org/yihui/rmarkdown-cookbook/table-other.html

    • kableExtra包

    本文以kableExtra包為例,介紹rmarkdown中渲染表格的相關函數(shù)。它在https://haozhu233.github.io/kableExtra/上有大量文檔,其中提供了許多示例,說明如何針對HTML或LaTeX輸出自定義kable()輸出。建議閱讀其文檔,本節(jié)中僅介紹一些示例介紹。

    kableExtra包可以使用管道符號%>%操作,例如

    library(knitr) library(kableExtra) kable(iris)?%>%kable_styling(latex_options?=?"striped")

    安裝

    #?install?from?CRAN install.packages("kableExtra")#?install?the?development?version remotes::install_github("haozhu233/kableExtra")

    1. 表格外框設置

    bootstrap_options = "bordered"構建有邊框的表格,其他可調(diào)節(jié)的名稱可通過幫助文檔獲取。

    x_html?<-?knitr::?kable(head(rock),?"html") kableExtra::kable_styling(x_html,bootstrap_options?=?"bordered")

    2. 設置表格的寬度

    使用full_width = F使得表格橫向不會填滿整個頁面。默認情況下full_width = T

    x_html?<-?knitr::?kable(head(rock),?"html") kableExtra::kable_styling(x_html,bootstrap_options?=?"striped",full_width?=?F)

    注意:上面例子knitr:: kable制定了kable函數(shù)來自knitr包,目的是方式和其他包內(nèi)同名函數(shù)沖突。

    另一種寫法,如果想使用管道函數(shù),需要加載kableExtra。其他代碼也類似,大家要學會舉一反三噢!

    library(knitr) library(kableExtra) kable(head(rock),?"html")?%>%?kable_styling(x_html,bootstrap_options?=?"striped",full_width?=?F)

    3. 設置表格的對齊方式

    使用position = "left"使得整個表格像左對齊,當然也可以中心對齊和右對齊,視情況而定。

    x_html?<-?knitr::?kable(head(rock),?"html") kableExtra::kable_styling(x_html,bootstrap_options?=?"striped",full_width?=?F,position?=?"left")

    4. 設置表格的字體大小

    使用font_size = 20可以將字體大小改為20。

    x_html?<-?knitr::?kable(head(rock),?"html") kableExtra::kable_styling(x_html,bootstrap_options?=?"striped",full_width?=?T,font_size?=?20

    5.設置表格的行與列

    這里使用的函數(shù)是column_spec(),其中以下代碼含義為:制定前兩列數(shù)據(jù),字體加粗、顏色為白色,表格填充為"#D7261E"。而行的設置與列類似,使用函數(shù)名為row_spec()。

    x_html?<-?knitr::?kable(head(rock),?"html") x_html?<-?kableExtra::kable_styling(x_html,bootstrap_options?=?"striped",full_width?=?T) kableExtra::column_spec(x_html,1:2,bold?=?T,color?=?"white",background?=?"#D7261E") x_html?<-?knitr::?kable(head(rock),?"html") x_html?<-?kableExtra::kable_styling(x_html,bootstrap_options?=?"striped",full_width?=?T) kableExtra::row_spec(x_html,1:2,bold?=?T,color?=?"white",background?=?"#D7261E")

    6.其它表格渲染

    這里給出一個有趣的例子,具體內(nèi)部不做過多解釋,b站視頻給出解釋。文字真的很難說明哈哈。

    library(kableExtra) data?=??plyr::mutate(rock[1:10,?],perm?=?cell_spec(perm,"html",color?=?"white",bold?=?T,background?=?spec_color(1:10,end?=?0.9,option?=?"A",direction?=?-1)),shape?=?ifelse(shape?>?0.15,cell_spec(shape,"html",color?=?"white",background?=?"#D7261E",bold?=?T),cell_spec(shape,?"html",color?=?"green",bold?=?T))) x_html?<-knitr::kable(data,"html",?escape?=?F,?align?=?"c") x_html?<-row_spec(x_html,0,?color?=?"white",?background?=?"#696969"?) kable_styling(x_html,"striped")

    第四章:Rmarkdown的主題格式

    Rmarkdowm作為可復用報告的優(yōu)秀工具,除了提供文檔編輯、圖表輸出外,還有許多主題格式供使用者選擇。除了默認的主題外,還可以通過加載rticles、prettydoc、rmdformats、tufte等包獲取更多主題格式。下面我們看看幾類擴展包里的主題樣式。

    注: 接下來的教程我是已經(jīng)安裝這些包了,沒安裝的記得提前安裝好!不然運行會出錯。

    4.1.rticles包

    官網(wǎng):https://github.com/rstudio/rticles;

    具體教程:https://bookdown.org/yihui/rmarkdown/rticles-templates.html

    rticles軟件包提供了各種期刊和出版商的模板:

    • JSS articles (Journal of Statistical Software)

    • R Journal articles

    • CTeX documents(中文pdf,強烈推薦!)

    • ACM articles (Association of Computing Machinery)

    • ACS articles (American Chemical Society)

    • AMS articles (American Meteorological Society)

    • PeerJ articles

    • Elsevier journal submissions

    • AEA journal submissions (American Meteorological Society)

    • IEEE Transaction journal submissions

    • Statistics in Medicine journal submissions

    • Royal Society Open Science journal submissions

    • Bulletin de l’AMQ journal submissions

    • MDPI journal submissions

    • Springer journal submissions

    在此只對下面一個模板進行演示,其他模板操作類似,但是一般模板是不能包含中文字體的哦!

    • CTeX Documents(中文版本)

    下載完對應的包之后,找到對應模板打開即可。輸出pdf是需要配置tex環(huán)境的哦!建議安裝Tinytex,具體安裝教程見前面。

    編譯后得到的結(jié)果,這是他模板原始的樣子,如果想調(diào)整頁面行間距,字體顏色等,請見下次推文(公眾號:莊閃閃的R語言手冊),我將會把這些小細節(jié)進行匯總。

    4.2.rmdformats包

    之后的這幾個包,內(nèi)部都包含了挺多模板的,下面yaml文件只是其中一個,如果想嘗試該包內(nèi)部其他模板,請根據(jù)上述操作進行,選擇好模板,編譯之后看看是不是你想要的模板。

    接下來我對部分相對不錯的模板進行展示,你可以直接復制我的頭部文件到.rmd格式中,或者打開模板窗口進行選擇(操作在下面)。

    • 方法一

    --- title:?"Rmarkdown入門教程" author:?"莊閃閃的R語言手冊" date:?"2/18/2021" output:rmdformats::readthedown:self_contained:?truethumbnails:?truelightbox:?truegallery:?falsehighlight:?tango ---

    方法二:

    在你安裝完該包之后你可以使用通過按鈕新建該模版(其實他有很多類似的模板,我這里只展現(xiàn)了一種):

    以下模板也可以通過這種方式構建,前提是你安裝了這個包,這樣你就可以在From Template中找到該包對應的模板了。

    4.3.prettydoc包

    --- title:?"Rmarkdown入門教程" author:?"莊閃閃的R語言手冊" date:?"2/18/2021" output:prettydoc::html_pretty:theme:?caymanhighlight:?github ---

    4.4.tufte包

    --- title:?"Rmarkdown入門教程" author:?"莊閃閃的R語言手冊" date:?"2/18/2021" output:tufte::tufte_html:?default ---

    4.5.cerulean包

    --- title:?"Rmarkdown入門教程" author:?"莊閃閃的R語言手冊" date:?"2/18/2021" output:html_document:theme:?ceruleanhighlight:?tango ---

    第五章:總結(jié)一些常用技巧

    關于RMarkdown使用時,小編日常會使用的一些有用技巧,當然我也是通過學習謝大大的Rmarkdown-cookbook[17]以及日常使用需求上網(wǎng)搜的解決方案,在此分享給大家。如果大家還有其他什么需求,可以在留言板留言。或者有其他實用技巧也歡迎分享!

    5.1.修改某些字體顏色????????????

    Markdown語法沒有用于更改文本顏色的內(nèi)置方法。我們可以使用HTML和LaTeX語法來更改單詞的格式

    • 對于HTML,我們可以將文本包裝在標記中,并使用CSS設置顏色,例如<span style =“ color:red;”> text </ span>。

    • 對于PDF,我們可以使用LaTeX命令\textcolor{}{}。這需要使用LaTeX軟件包xcolor,該軟件包已包含在Pandoc的默認LaTeX模板中。

    ** 作為更改PDF文本顏色的示例:**

    我是\textcolor{blue}{莊閃閃}呀!歡迎關注我的\textcolor{red}{公眾號}:\textcolor{blue}{莊閃閃的R語言手冊}。

    在上面的示例中,第一組花括號包含所需的文本顏色,第二組花括號包含應將此顏色應用到的文本。

    5.2.更改全文頁邊距等 ????????????

    在top-level中加入geometry命令,例如

    --- title:?"RMarkdown常用技巧" author:-?莊閃閃 documentclass:?ctexart geometry:?"left=2cm,right=2cm,top=2cm,bottom=2cm" output:rticles::ctex:keep_tex:?trueincludes:in_header:?columns.texfig_caption:?yesnumber_ps:?yestoc:?yes ---

    這時的頁邊距就變成下面這樣了:

    當然全文字體大小等操作也是這樣操作的,在geometry操作即可:

    5.3. 縮進文本 ????????

    默認情況下,Markdown還將忽略用于縮進的空格。但是,在某些情況下,例如在經(jīng)文和地址中,我們可能希望保留縮進。在這些情況下,我們可以通過以豎線(|)開頭的線來使用線塊。換行符和所有前導空格將保留在輸出中。例如:

    |?When?dollars?appear?it's?a?sign |???that?your?code?does?not?quite?align?? |?Ensure?that?your?math?? |???in?xaringan?hath?? |???been?placed?on?a?single?long?line

    輸出為:

    5.4.分頁

    如果想要分頁,可以使用\newpage。例如:如果想把目錄和正文內(nèi)容分開,可以在在正文前面加入這個代碼

    這時輸出的結(jié)果,目錄一個界面,正文另起一頁。

    5.5.控制文本輸出的寬度????????

    有時從R代碼輸出的文本可能太寬。如果輸出文檔具有固定的頁面寬度(例如,PDF文檔),則文本輸出可能會超過頁面的頁邊距。

    R全局選項寬度可用于控制R函數(shù)輸出的文本寬度,如果默認值太大,則可以嘗試使用較小的值。此選項通常表示每行字符的粗略數(shù)目。例如:

    ```{r} options(width?=?300) matrix(runif(100),?ncol?=?20) ``` ```{r} options(width?=?60) matrix(runif(100),?ncol?=?20) ```

    但是這種方式不一定對所有函數(shù)都適用,這是你可以使用其他方式,對于Html(這里不做解釋,主要將pdf),可以參見教程[18]

    對于PDF輸出,換行比較困難。一種解決方案是使用LaTeX軟件包清單,可以通過Pandoc參數(shù)--listings啟用它。然后,您必須為此軟件包設置一個選項,并且可以從外部LaTeX文件中包含設置代碼(有關詳細信息,請參見第6.1[19]節(jié)),例如,

    --- output:pdf_document:pandoc_args:?--listingsincludes:in_header:?preamble.tex ---

    在preamble.tex中(建議放到和rmd同一個文件夾),我們設置了Listings包的一個選項:

    \lstset{breaklines=true }

    這是輸出的結(jié)果,但是其實不是很美觀

    5.6.控制圖片輸出大小????????????

    這個我在文稿和教程中說的挺清楚了。一共有兩種方式:

    方法一:

    ```{r,?echo=FALSE,?out.width="50%",?fig.cap="A?nice?image."} knitr::include_graphics("foo/bar.png") ```

    方法二:

    ![A?nice?image.](foo/bar.png){width=50%}

    5.7.圖片對齊????????????

    這個我也說過啦!就是在R chunk中加入fig.align = 'center'進行居中。外部數(shù)據(jù)你可以不用markdown的形式輸入,可以在R代碼塊使用

    knitr::include_graphics()

    具體可以見:和我的b站視頻。

    5.8.代碼塊的行號????

    通過塊選項 attr.source =“ .numberLines”將行號添加到源代碼塊中,或者通過attr.output =“ .numberLines”將文本輸出塊添加到文本中,例如,

    ```{r,?attr.source='.numberLines'} if?(TRUE)?{x?=?1:10x?+?1 } ```

    輸出結(jié)果為:

    5.9.多列輸出????????????

    這個特別好用!雖然學起來有那么一點困難,具體我再出一期推文,把這個講清楚。具體可以見這里的教程[20]。類似于排版成這種形式:

    5.10.小編有話說

    • 我相信大家還會使用其他寶藏模板吧,也歡迎在評論下方分享!小編能力有限,只能總結(jié)和分享這么多了!

    • 當然Rmarkdown還可以做各種拓展,比如presentation(ioslides、Beamer、slidy、PowerPoint),Documents(Html、Notebook、PDF、word)及其其他拓展(Dashboards、Tufte Handouts、xaringan Presentations、Websites)等。有部分我已經(jīng)整理好了,可以在下面窗口的拓展教程中找到。

    參考資料

    [1]

    《R 語言教程》: https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/rmarkdown.html

    [2]

    官方視頻: https://rmarkdown.rstudio.com/lesson-1.html

    [3]

    knitr 文檔: http://yihui.name/knitr/

    [4]

    Xie, Allaire, and Grolemund: https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/rmarkdown.html#ref-Xie2019:rmarkdown

    [5]

    Xie, Dervieux, and Riederer: https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/rmarkdown.html#ref-Xie2020:rmd-cook

    [6]

    pandoc 網(wǎng)站: https://www.pandoc.org/

    [7]

    R: https://www.r-project.org

    [8]

    RStudio IDE: https://www.rstudio.com

    [9]

    TinyTeX: https://yihui.name/tinytex/

    [10]

    Murdoch 2020: https://bookdown.org/yihui/rmarkdown-cookbook/table-other.html#ref-R-tables

    [11]

    Daróczi and Tsegelskyi 2018: https://bookdown.org/yihui/rmarkdown-cookbook/table-other.html#ref-R-pander

    [12]

    Garbett 2020: https://bookdown.org/yihui/rmarkdown-cookbook/table-other.html#ref-R-tangram

    [13]

    Moon 2020: https://bookdown.org/yihui/rmarkdown-cookbook/table-other.html#ref-R-ztable

    [14]

    Oller Moreno 2020: https://bookdown.org/yihui/rmarkdown-cookbook/table-other.html#ref-R-condformat

    [15]

    Zhu 2020: https://bookdown.org/yihui/rmarkdown-cookbook/kableextra.html#ref-R-kableExtra

    [16]

    Hugh-Jones 2020: https://bookdown.org/yihui/rmarkdown-cookbook/table-other.html#ref-R-huxtable

    [17]

    Rmarkdown-cookbook: https://bookdown.org/yihui/rmarkdown-cookbook/

    [18]

    教程: https://bookdown.org/yihui/rmarkdown-cookbook/text-width.html

    [19]

    6.1LaTeX軟件包清單: https://bookdown.org/yihui/rmarkdown-cookbook/latex-preamble.html#latex-preamble

    [20]

    多列輸出教程: https://bookdown.org/yihui/rmarkdown-cookbook/multi-column.html

    注:如果你覺得文字太生澀了,上面說的內(nèi)容都可以在我的b站視頻中學到。?可以保存以下照片,在b站掃該二維碼,或者b站搜索【莊閃閃】觀看Rmarkdown系列的視頻教程。Rmarkdown視頻新增兩節(jié)視頻(寫輪眼幻燈片制作)需要視頻內(nèi)的文檔,可在公眾號回復【rmarkdown】

    文末的相關推薦給出了Rmarkdown的一些拓展教程,包括制作幻燈片,beamer等,喜歡的可以看下。


    往期精品(點擊圖片直達文字對應教程)

    機器學習

    后臺回復“生信寶典福利第一波”或點擊閱讀原文獲取教程合集

    總結(jié)

    以上是生活随笔為你收集整理的1.5w字的Rmarkdown入门教程汇总的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。