programing tip

'R CMD Sweave myfile.rnw'에 해당하는 knitr는 무엇입니까?

itbloger 2020. 12. 25. 09:01
반응형

'R CMD Sweave myfile.rnw'에 해당하는 knitr는 무엇입니까?


명령 줄 knitr에 해당하는 것은 R CMD Sweave myfile.rnw무엇입니까?


일반 솔루션 (R 버전에 관계없이 작동) :

Rscript -e "library(knitr); knit('myfile.Rmd')"

R 3.1.0부터 R CMD SweaveSweave가 아닌 문서를 지원하기 시작했습니다 (명령 이름이 약간 이상하게 들리지만).해야 할 일은 문서에 비 네트 엔진을 지정하는 것뿐입니다.

%\VignetteEngine{knitr::knitr}

knitr 에서 가능한 비 네트 엔진을 보려면 다음 을 사용하십시오.

library(knitr)
library(tools)
names(vignetteEngine(package = 'knitr'))
# "knitr::rmarkdown" "knitr::knitr" "knitr::docco_classic" "knitr::docco_linear"

knitme.R 스크립트가 있습니다.

library(knitr)
render_html()
source("hooks.R") # mods to defaults
inFile = commandArgs(trailingOnly=TRUE)[1]
outFile = commandArgs(trailingOnly=TRUE)[2]
knit(inFile,output=outFile)

그래서 할 수 있습니다

Rscript knitme.R $SOURCE $TARGET

어디 $SOURCE과은 $TARGET등이 필요합니다.

이를에 통합 할 수도 Make있으므로해야 할 일은 다음과 같습니다.

make myfile.html

myfile.RhtmlHTML 파일 로 이동하여 생성합니다. .Rnw에서 PDF를 만들도록 조정

Make 대신 SCons 와 함께 사용하고 있으므로 좀 더 복잡한 Sconscript 파일이 있습니다 (부분적으로 SCons 사용 방법을 배우기 시작했기 때문에 약간 까다로울 수 있습니다)

env=Environment()
bld = Builder(action = '/usr/bin/Rscript knitme.R $SOURCE $TARGET',
              suffix='.html',
              src_suffix='Rhtml')
env.Append(BUILDERS = {'Knit' : bld})
env.Knit(source='test.Rhtml',target='test.html')

그러면 내가해야 할 일은 다음과 같습니다.

scons test.html

그리고 나는 얻을 test.html에서 내장 된 test.Rhtml경우 test.Rhtml변경되었습니다.

이것은 Sconstruct모든 종류의 다른 종속성을 기반으로 전체 웹 사이트를 구축하고 서버에 복사 하는 파일의 일부입니다 .

지금 주제에서 벗어난 표류 ...


다른 답변에 추가하려면 파일을 짜고 렌더링하고 출력을 모두 한 줄로 열려면 다음을 사용할 수 있습니다.

Rscript -e "rmarkdown::render('file.Rmd')" & open file.pdf

재사용 가능한 Vim 명령으로 실행하는 것이 더 간단하기 때문에 한 줄로 모두 수행하는 것을 선호합니다.

open시스템의 기본값이 아닌 것을 사용하려는 경우 특정 응용 프로그램으로 바꿀 수도 있습니다 . 저는 Windows에서 Sumatra를 사용하여 현재 열려있는 PDF 출력을 덮어 쓰고 싶을 때 사용하는 경향이 있습니다 (매번 닫을 필요가 없습니다).


R CMD knit file.Rmd

R CMD Sweave 파일과 직접적으로 동일합니다.

최근에는 이러한 종류의 더러운 작업을 위해 rmarkdown 및 knitr에 향상된 기능이 있습니다. 슬라이드의 경우 Rmarkdown YAML 헤더를 사용하여 의도 한 출력 형식을 지정했으며 명령 줄은 다음과 같이 기본입니다.

R -e "library(rmarkdown); render(\"file.Rmd\")"

참조 URL : https://stackoverflow.com/questions/10943695/what-is-the-knitr-equivalent-of-r-cmd-sweave-myfile-rnw

반응형