我試圖用R package knitr創建HTML文件,但我發現整個體驗相當困難,可能是因爲文檔很稀疏當不使用LaTeX時(以及不知道Sweave的人)。具體問題是這樣的:
我希望在HTML文件中生成兩個類似的圖表,但每個圖表都必須有不同的高度。因此,這裏是我的RHTML文件:
<!DOCTYPE html>
<html>
<head>
<title>TEST</title>
</head>
<body>
<!--begin.rcode
opts_chunk$set(echo=FALSE, dpi=96, fig.width=9, fig.height=8, dev="png")
print("Width 9, height 8")
plot(rnorm(100), col="orange")
end.rcode-->
<hr>
<!--begin.rcode
opts_chunk$set(echo=FALSE, dpi=96, fig.width=9, fig.height=12, dev="png")
print("Width 9, height 12")
plot(rnorm(100), col="purple")
end.rcode-->
<hr>
</body>
</html>
正如你可以看到兩個(簡單)地塊必須具有相同的寬度(9),但不同的高度(8則12)。這在R中非常簡單,但是knitr似乎想要保持縱橫比相同。下面是這兩個情節輸出:
正如你所看到的,下一個沒有我想要的縱橫比,它們是不同的寬度。
而且,我得到這一切塊輸出的,我認爲我是用回聲= FALSE抑制我的HTML文件的頂部....
我怎麼可能解決所有的這? opts_chunk $ set是否僅設置了某種全局選項?如果我想在每次輸出新圖形時重置選項,該怎麼辦?而我該如何壓制所有 knitr包的輸出?
只是提出一些解決這些問題的建議:確保'cache = FALSE'並丟棄數字和緩存子文件夾,以確保它們全部得到更新。確保儘可能多的選項在'setup'塊中設置。然後,只修改它們更改的塊中的塊選項。另外,我總是將'rm(list = ls())'放在我的設置塊中,以便使寫入全局環境的某些參數不會出現。此外,排版會產生中間文件 - 也會將這些文件丟棄,以強制新的副本。最後,你可能會看''knitr'中的'spin'函數。 –
好吧,只是試了一下。 rm(list = ls());擦除圖形目錄中的所有png,重新加載瀏覽器,清除其緩存;沒有快樂。還是一樣。由於我實際上沒有排版(只是HTML),除了「圖」目錄之外,還有什麼需要清除,你知道嗎?順便說一句,什麼是「設置塊」? –
這沒什麼正式的,但許多人使用第一個代碼塊來設置'knitr'和'R'選項和設置。例如,它會有'opts_chunk'和'library(「無論」)。另外,如果你依賴全局變量,你會錯過重複研究的優點。如果可能的話,使腳本生成或至少從「csv」或「RData」或類似的東西獲取這些值。 –