什么是与RStudio的Knit HTML相当的简洁命令行?给定.Rmd
文件,您可以使用RStudio使用Knitr编织.html
,.docx
和.pdf
文件。将此过程完全转移到命令行会很棒。到目前为止我的方法:
Rscript -e "library(knitr); knit('test.Rmd')" # This creates test.md
pandoc test.md >> test.html
这样可以正常工作,但结果test.html
并没有像在RStudio中那样漂亮。有关如何通过命令行最好将.Rmd
个文件编织到.html
并最终使用漂亮.html
的任何建议?
额外问题:.pdf
或.docx
的最佳命令行解决方案是什么?
答案 0 :(得分:2)
在接受答案之后,我起草了一个名为“ knitter”的bash脚本,它将执行所需的所有操作,用户所需要做的就是输入:./knitter file.Rmd file.html
或./knitter file.Rmd file.pdf
。 >
脚本如下:
#!/bin/sh
### Test usage; if incorrect, output correct usage and exit
if [ "$#" -gt 2 -o "$#" -lt 2 ]; then
echo "********************************************************************"
echo "* Knitter version 1.0 *"
echo "********************************************************************"
echo -e "The 'knitter' script converts Rmd files into HTML or PDFs. \n"
echo -e "usage: knitter file.Rmd file.{pdf,html} \n"
echo -e "Spaces in the filename or directory name may cause failure. \n"
exit
fi
# Stem and extension of file
extension1=`echo $1 | cut -f2 -d.`
extension2=`echo $2 | cut -f2 -d.`
### Test if file exist
if [[ ! -r $1 ]]; then
echo -e "\n File does not exist, or option mispecified \n"
exit
fi
### Test file extension
if [[ $extension1 != Rmd ]]; then
echo -e "\n Invalid input file, must be a Rmd-file \n"
exit
fi
# Create temporary script
# Use user-defined 'TMPDIR' if possible; else, use /tmp
if [[ -n $TMPDIR ]]; then
pathy=$TMPDIR
else
pathy=/tmp
fi
# Tempfile for the script
tempscript=`mktemp $pathy/tempscript.XXXXXX` || exit 1
if [[ $extension2 == "pdf" ]]; then
echo "library(rmarkdown); rmarkdown::render('"${1}"', 'pdf_document')" >> $tempscript
Rscript $tempscript
fi
if [[ $extension2 == "html" ]]; then
echo "library(rmarkdown); rmarkdown::render('"${1}"', 'html_document')" >> $tempscript
Rscript $tempscript
fi
答案 1 :(得分:0)
我更简单的命令行脚本,类似于Tyler R。:
在您的.profile
中,添加:
function knit() {
R -e "rmarkdown::render('$1')"
}
然后在命令行上键入knit file.Rmd
我在Rmd标头中设置了输出格式:output: github_document
或类似的
答案 2 :(得分:0)
getwd()
setwd("C:Location of the RMD File")
# To make it in to PDF you can use the below code also
rmarkdown::render("Filname.Rmd")
# To make it in to PDF you can use the below code also
rmarkdown::render("Filename", "pdf_document")
我在R脚本中输入了上述内容,并从Python命令提示符处触发了它,并解决了我的要求:) 请注意:如果不起作用,请尝试安装乳胶,然后重试。最好:)