读书笔记_第二十二章

#创建动态报告

#范例一 用模板生成报告
library("rmarkdown")
render("example.Rmd","html_document")

#对照范例  线性回归,单独代码实现
l <- lm(weight~height,data=women)
s <- summary(l)
c <- coefficients(l) #返回相关系数向量
class(c) #返回向量,numeric
length(c) #返回2
c[1] #提取截距值
c[2] #提取height的相关系数
class(c[1]) #返回截距值的类型为numeric
class(c[[1]]) #返回截距值的类型为numeric

s$r.squared #提取R方, 0.9910098

library(xtable)
options(xtable.comment=FALSE)
print(xtable(s),type="html",html.table.attributes="border=0")
#结果解读
#<table border=0>
#    <tr> <th>  </th> <th> Estimate </th> <th> Std. Error </th> <th> t value </th> <th> Pr(&gt;|t|) </th>  </tr>
#    <tr> <td align="right"> (Intercept) </td> <td align="right"> -87.5167 </td> <td align="right"> 5.9369 </td> <td align="right"> -14.74 </td> <td align="right"> 0.0000 </td> </tr>
#    <tr> <td align="right"> height </td> <td align="right"> 3.4500 </td> <td align="right"> 0.0911 </td> <td align="right"> 37.86 </td> <td align="right"> 0.0000 </td> </tr>
#    </table>

library(ggplot2)
ggplot(data=women,aes(x=height,y=weight))+
    geom_point()+
    geom_smooth(method="lm") #lm是参数,不是lm的对象l


#范例二 用R和Markdown创建动态报告,变量的灵活性应用
install.packages("rmarkdown")
install.packages("xtable")

library("rmarkdown")
library("xtable")

#创建women.Rmd文件 有嵌入R代码的Markdown模板

#基于women.Rmd创建html页面,当前工作目录下
library("rmarkdown")
#文件对象women.Rmd必须加引号,否则提示文件对象无法找到
render("women.Rmd","html_document")

#范例三 生成pdf文件
render("womenlatex.Rmd","pdf_document")


#范例四 生成doc 文件
render("womenword.Rmd","word_document")

#用R和LaTex创建动态报告
library(knitr)
#输出drugs.tex
knit("drugs.Rnw")
#一步转换成drugs.pdf
knit2pdf("drugs.Rnw")


#用R和Open Document创建动态报告
#Warning in install.packages :
#    package ‘odfWeave’ is not available (for R version 3.4.4)

install.packages("odfWeave")
library(odfWeave)
infile <- "salaryTemplate.odt"
outfile <- "salaryReport.odf"
odfWeave(infile,outfile)

#用R和Microsoft Word创建动态报告

install.packages("R2wd")
install.packages("RDCOMClient")
library("R2wd")
library("RDCOMClient")

library(carData)
library(car)
df <- Salaries
n <-  nrow(df)
fit <- lm(salary~rank*sex,data=df)
summary(fit)
aovTable <- Anova(fit,type=3)
aovTable <- round(as.data.frame(aovTable),3)
aovTable[is.na(aovTable)] <- ""
class(aovTable) #返回"data.frame"

#R2wd函数介绍
#wdGet,返回一个指向word文档的句柄,
#如果当前工作路径下的对应文件未打开,会自动启动,打开当前文档,然后返回对应的句柄

#salaryTemplate2.docx的书签默认不可见
#microsoft word 中选择“选项”-“高级”-“显示书签”,可以看见书签被添加在哪里
#一个大写的I
#如果想插入一个书签,把光标放在想添加书签的位置,选择“插入”-“书签”,为书签命名,然后点击添加


wdGet("salaryTemplate2.docx",method="RDCOMClient")
#wdGoToBookmark将光标移动到指定的书签位置
wdGoToBookmark("n")
#wdWrite,在光标处写入对象n的值
#在打开的文档窗口能看见数值插入
wdWrite(n)

wdGoToBookmark("aovTable")
#wdTable(),把一个数据框或一个向量作为一个word表格写入到当前光标所在的位置
#会打印null
#在打开的文档窗口能看见数据框插入
wdTable(aovTable,caption="Two-way Analysis of Variance",
        caption.pos="above",pointsize = 12,autoformat = 4)

wdGoToBookmark("effectsPlot")
myplot <- function(){
    require(effects)
    par(mar=c(2,2,2,2))
    plot(allEffects(fit),main="")
}
#创建一个R图片,把它粘贴到当前光标所在位置
#会打印null
#在打开的文档窗口能看见图片插入
wdPlot(plotfun=myplot,caption="Mean Effects Plot",
       height=4,width=5,method="metafile")
#wdSave()保存文档
#会打印null
#如果没有文件名,则保存进当前文档句柄
#直接写文件名,但是并没有存到当前工作路径下
#D://Script//R//charpter_22//SalaryReport2.docx,写全完整路径,并且使用双斜杠
wdSave("D://Script//R//charpter_22//SalaryReport2.docx")
#关闭word,并移除句柄
wdQuit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值