R 语言生成Word文档的模板代码
title: "报告模板"
author: "hailong"
date: r Sys.time()
output: word_document
全球电话数量
数据采用R自带数据库WorldPhones
write.csv(WorldPhones,file="/Users/hailong/test project/wp.csv")
wp <- read.csv("/Users/hailong/test project/wp.csv")
i <- 1
year <- wp[i,1]
wpi <- unlist(wp[i,2:8])
conti <- c(" 北美"," 欧"," 亚"," 南美"," 大洋"," 非"," 中美")
数据
在* r year*年,全球电话总数为*r sum(wpi)*。拥有电话数量最多的是*r conti[which.max(wpi)]*洲,电话数量为*r max(wpi)*,占全球总数的*r paste(round(max(wpi)/sum(wpi),4)*100,"%",sep="")*。
以上为R中代码,结果输出为:
在1951年,全球电话总数为74494。拥有电话数量最多的是 北美洲,电话数量为45939,占全球总数的61.67%。
作图
下图是1951年全球各洲电话数量的柱状图。
barplot(wpi)
下一步批量生产Word文档
下面代码第一行读入文本,第二行起开始循环,并将代码中第16行的i
替换为相应的1-7个数字,即改赋值为k
,然后把新文档存为newrmd,之后用rmarkdown中的render()
功能转换为同名Word文档。注意newrmd <- paste(k,".Rmd",sep = "")
这行中k前面是否需要加url文件路径根据情况来,我运行时加了路径后会报错。
rdoc <- readLines("/Users/hl/test project/R语言生成word文档的模版.Rmd",
encoding = "UTF-8")
for(k in 1:7){
newrmd <- paste(k,".Rmd",sep = "")
rdoc[16] <- paste("i <- ",k)
writeLines(rdoc,newrmd,useBytes = TRUE)
rmarkdown::render(newrmd,encoding = "UTF-8")
}
之后,文件夹中应该自动生成了7个.Rma文件和7个Word文件。