当前位置: 首页 > news >正文

R语言 | 如何使用R书写html文档?

更灵活的书写方式,可以直接看3.

1. 可用函数

  • cat()函数
  • writeLines()函数
  • sink()函数重定向输出到HTML文件

小结:cat()适合简单HTML,writeLines()适合多行内容,sink()适合复杂场景。
说明:尽可能不用R包,减少依赖变动风险。

方法1: 使用cat()直接输出

cat('<!DOCTYPE html>
<html>
<head>
<title>My Page</title>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>', file="output.html")

方法2: 使用writeLines()

html_content <- c('<!DOCTYPE html>','<html>','<head>','<title>My Page</title>','</head>','<body>','<h1>Hello World</h1>','</body>','</html>')
writeLines(html_content, "output.html")

方法3: 使用sink()

sink("output.html")
cat('<!DOCTYPE html>\n')
cat('<html>\n')
cat('<head>\n')
cat('<title>My Page</title>\n')
cat('</head>\n')
cat('<body>\n')
cat('<h1>Hello World</h1>\n')
cat('</body>\n')
cat('</html>\n')
sink()

2. 逐句拼凑html文件

如果不同R文件、同一个R文件的不同位置都要输出信息到同一个html报告文件中呢?

  • 使用函数 cat的 append=T参数: cat('\n</body>\n</html>', file = filepath, append = TRUE)

(1)先定义库函数:

# 初始化HTML文件
init_html <- function(filepath) {writeLines('<!DOCTYPE html>\n<html>\n<head>\n<title>Project Output</title>\n</head>\n<body>', filepath)
}# 添加HTML片段
add_html_section <- function(filepath, content, section_title) {section <- paste0('\n<h2>', section_title, '</h2>\n<div>', content, '</div>')cat(section, file = filepath, append = TRUE)
}# 完成HTML文件
finalize_html <- function(filepath) {cat('\n</body>\n</html>', file = filepath, append = TRUE)
}

逐个写入函数有局限性,需要定义好h2和子内容。

(2)在不同位置写文档:

 项目不同位置使用示例
output_file <- "project_output.html"# 位置1:初始化文件
init_html(output_file)# 位置2:数据分析模块
analysis_result <- "<p>数据分析结果...</p>"
add_html_section(output_file, analysis_result, "分析报告")# 位置3:可视化模块
plot_html <- "<img src='plot.png' alt='分析图表'>"
add_html_section(output_file, plot_html, "可视化结果")# 位置4:最终完成
finalize_html(output_file)

3. 自由写html文件,自定义各种标签

如果想更自由的写各种html标签呢?

(1)核心函数

con <- file(outputFile, "w") #打开文件,如果想追加,使用oepn="a"
writeLines(something, con) #写文本
close(con) #关闭文件

(2)包装函数

# functions
html=function(text, tag, fw=con){rs=sprintf("<%s>%s</%s>", tag, text, tag)writeLines(rs, fw)
}
htmlRaw=function(text, fw=con){writeLines(text, fw)
}
# 类似的,可以包装更多函数
h1=function(text){ html(text, "h1")}
h2=function(text){ html(text, "h2")}R2=function(num){round(num, 2)
}now=function(){as.character( format(Sys.time(), '%Y%m%d_%H%M%S') )
}

(3)用法

html("End --", "p")htmlRaw("<div class=box>")

Ref:

  • http://blog.dawneve.cc/index.php?k=R&id=0_2#26

相关文章:

  • BERT 模型微调与传统机器学习的对比
  • 从硬件视角审视Web3安全:CertiK CTO主持Proof of Talk圆桌论坛
  • 帆软 BI 从入门到实战全攻略(一):安装激活与添加数据
  • echart pie label.rich 颜色设置与项目同色
  • 波形合成之C语言实现
  • centos7 安装 zabbix6 -proxy
  • 亚马逊 API 接口开发:解锁商品详情页实时数据(接入流程解析)
  • echarts 地图 海南省全岛完整展示
  • Linux文件回收机制:安全删除文件不怕误删
  • CLIP多模态模型详解
  • UR机械臂配置moveit_config和moveit_servo​(保姆级教程)
  • Linux 任务调度策略
  • Project Reactor响应式编程简介
  • Leetcode刷题(91~95)
  • 商品中心—3.商品可采可补可售的技术文档上
  • 与AI联手,ModbusTCP 转Ethercat控制系统升级解决刚需新思路
  • MyBatis-Plus 混合使用 XML 和注解
  • 一个教学项目pom.xml杂记
  • DevOps软件开发流程规范
  • 【笔记】NVIDIA AI Workbench 中安装 PyTorch
  • 湖南省人民政府办公厅/百度推广怎么优化排名
  • 网站建设找金手指排名/电脑优化
  • 个人网页图片模块制作/seo职业培训学校
  • 蚌埠市建设工程质监站网站/百度推广怎么操作
  • 厦门网站开发公司哪家好/营销软文范例500
  • 网站在线咨询代码/松松软文