Overleaf, knitr ile bir entegrasyon sunar; bu sayede dinamik çıktı üretmek için LaTeX belgenize R kodu ekleyebilirsiniz.R kodu içeren belgeler .Rtex veya .Rnw uzantısıyla kaydedilmelidir, aksi takdirde kod çalışmaz. Bir örneğe bakalım:
\documentclass{article}\begin{document}You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:<<>>=# Create a sequence of numbersX = 2:10# Display basic statistical measuressummary(X)@\end{document}
Bu knitr örneğini Overleaf’te açınGördüğünüz gibi <<>>= ve @ karakterleri arasındaki metin R kodudur. Bu kod ve çıktısı listeleme benzeri bir biçimde yazdırılır. Bu kod parçası, bir sonraki bölümde açıklandığı gibi dinamik çıktıyı özelleştirmek için bazı ek parametreler alabilir.
Önceki bölümde sunulana benzer bir kod bloğuna genellikle chunk (parça) denir. knitr parçalarında bazı ek seçenekler ayarlayabilirsiniz. Aşağıdaki örneğe bakın:
\documentclass{article}\begin{document}You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:<<echo=FALSE, cache=TRUE>>=# Create a sequence of numbersX = 2:10# Display basic statistical measuressummary(X)@\end{document}
echo=FALSE Bu, kodu gizler ve yalnızca R tarafından üretilen çıktıyı yazdırır.
cache=TRUE cache true olarak ayarlanırsa parça çalıştırılmaz, yalnızca onun ürettiği nesneler kullanılır. Bu, o parçadaki veriler değişmediyse zaman kazandırır.
cache=TRUE seçeneğinin şu anda Overleaf’te desteklenmediğini, ancak yerel olarak çalışması gerektiğini unutmayın.
Bir parçada oluşturulan nesnelere erişmek ve bunları satır içinde yazdırmak mümkündür.
\documentclass{article}\begin{document}You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:<<echo=FALSE, cache=TRUE>>=# Create a sequence of numbersX = 2:10# Display basic statistical measuressummary(X)@So, the mean of the data is $\Sexpr{mean(X)}$\end{document}
Bu knitr örneğini Overleaf’te açın\Sexpr{mean(X)} komutu, mean(X) R kodunun döndürdüğü çıktıyı yazdırır. Süslü parantezlerin içine herhangi bir R komutu verilebilir.
Bu knitr örneğini Overleaf’te açınBu histogram, geçerli çalışma dizininde kayıtlı “data.txt” dosyasındaki verileri kullanır. Parçaya şekille ilgili birkaç seçenek iletilmiştir.plot1 Bu, grafiğe atıfta bulunmak için kullanılan etikettir. “fig:” öneki zorunludur. Örnekte şekle \ref{fig:plot1} ile atıfta bulunulduğunu görebilirsiniz. fig.pos="t" konumlandırma parametresi. Bu, figure ortamında kullanılanla aynıdır. fig.height=4, fig.width=4 Şeklin genişliği ve yüksekliği. fig.cap="First plot" Şeklin başlığı.
Harici bir R betiğinin bölümlerini bir knitr belgesine aktarabilirsiniz. Betiği belgenize eklemeden önce harici bir programda yazıp hatalarını ayıklamak oldukça yaygın olduğundan bu çok kullanışlıdır.LaTeX belgemize eklediğimiz mycode.R adlı bir dosyada aşağıdaki R kodunun bulunduğunu varsayalım:
## ---- myrcode1# Create a sequence of numbers X = 2:10## ---- myrcode2# Display basic statistical measuressummary(X)
Şu satırlara dikkat edin:
## ---- myrcode1
ve
## ---- myrcode2
Bunlar bir kod parçasının başlangıcını işaretler ve aşağıdaki kod parçasında gösterildiği gibi bu betiği belgemizde kullanmak istiyorsanız zorunludur:
The chunk below will not be printed<<echo=FALSE, cache=FALSE>>=read_chunk("mycode.R")@The code must show up here<<myrcode2>>=@
İlk parça yazdırılmaz ve yalnızca read_chunk("mycode.R") komutuyla betiği içe aktarmak için kullanılır. Bu yüzden echo=FALSE seçeneği ayarlanmıştır. Ayrıca betikler önbelleğe alınmamalıdır. Betik içe aktarıldıktan sonra, ## ---- sonrasında belirlediğiniz etiketi kullanarak bir parçayı yazdırabilirsiniz. Bu örnekte bu etiket myrcode2’dir.Makaledeki tüm kod parçalarını, Overleaf’te açabileceğiniz bir projede bir araya getirdik.