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文件。