zoukankan      html  css  js  c++  java
  • 用R自动生成pdf文件

    1)安装R程序包knitr,写markdown,需要安装生成pdf的工具MikTex,RTools(RTools 需要安装吗?待验证)

    安装 R package — rmarkdown,

    Yaml Header参数

    this is yaml header 

    生成pdf的Rmd文件中,设定 "output: pdf_document"

    YAML header将决定如何展现你的 .Rmd file.文件,用两个 --- 包围,如下图:

    ---
    title: "test"
    author: "dym"
    date: "2017年10月10日"
    output: pdf_document
    ---

    output: 选择其中一种类型的文件类型,html_document   pdf_document   word_document

    Rmd插入R语句

    knitr包能够兼容markdown语法,尤其包含执行R代码的能力,Rmd文件中插入R语句:

    echo=FALSE  表示不打印命令语句

    eval=FALSE   表示不显示运行结果

    ```{r pressure, echo=FALSE, eval=FALSE}
    plot(pressure)
    ```
    

    note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.

    改变plot生成的图片大小的参数,fig.width=11,11为英寸值,改变fig.width,可改变生成的图片的宽度

    行间代码

    嵌入R代码到文本当中,在代码的两侧用点’来包围,如下图:

    Two plus two equals `r 2 + 2`.
    

    显示结果为:

    Two plus two equals 4.
    

     Render文件格式转换

    rmarkdown::render() 将RMD文件转换为html 或 pdf文件:

    library(rmarkdown)
    render('test2.Rmd', pdf_document(latex_engine = 'xelatex'), output_file = 'test_haha.pdf')
    render('1-example.Rmd', output_file = 'haha.html')
    

    knitr  markdown  转换成pdf   

    http://www.dataguru.cn/thread-208296-1-1.html

    中文字符的问题

    在rmd文件中,如果有中文字符,运行文件的时候会报错;

    如果rmd文件中打印一个变量,变量的值是中文字符,转换为pdf文件时也是乱码;用plot画图时,如果坐标的刻度标签或标题(参数main)有中文字符,输出在pdf文档中也是乱码;

    1)对于输出变量是中文的情况:

    可以通过在rmd的yaml文件中加入下面字段,实现在pdf中正常输出中文:

     header-includes:

    - usepackage{xeCJK}

    2)对于横坐标的刻度标签含中文的情况,解决方案是在plot函数中,设置xaxt = 'n',用axis函数设置坐标刻度,用text函数加上刻度标签,标签中不能含中文字符,这样横坐标就可以正常显示了;

  • 相关阅读:
    Spring注解@Resource和@Autowired区别对比
    Http请求中Content-Type讲解以及在Spring MVC中的应用
    解决SpringMVC的@ResponseBody返回中文乱码
    JVM之类加载器下篇
    JVM之类加载器中篇
    JVM之类加载器上篇
    HashMap的resize和Fail-Fast机制
    HashMap的实现原理
    Tomcat中JVM内存溢出及合理配置
    redis的主从复制,读写分离,主从切换
  • 原文地址:https://www.cnblogs.com/thinkers-dym/p/8127508.html
Copyright © 2011-2022 走看看