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

R语言【cli】——通过cli_abort用 cli 格式的内容显示错误、警告或信息,内部调用cli_bullets和inline-makeup

cli_abort(message,...,call = .envir,.envir = parent.frame(),.frame = .envir
)

先从那些不需要下大力气理解的参数入手:

参数【.envir】:进行万能表达式编译的环境。

参数【.frame】:抛出上下文。默认用于参数【.trace_bottom】,当参数【.internal】TRUE 时,用于确定在内部错误中提及的内部软件包。

参数【call】:当前运行函数的执行环境,例如 call = caller_env()。相应的函数调用会被检索出来,并在错误信息中作为错误源被提及。您只需要在从辅助函数抛出条件时提供调用即可,而无需在信息中提及。

参数【...】:传递给 rlang::abort()rlang::warn() 或 rlang::warn() 的参数。


以上都是不太需要进行修改的参数,所以本文的重点将放在参数【message】上。只需将希望输出的文本信息传递给参数【message】即可:

cli_abort(c("this is my error! Do not mess with R!"))

输出了警告信息:

Error:
! this is my error! Do not mess with R!
Run `rlang::last_trace()` to see where the error occurred.

参数【message】:它是通过调用 cli_bullets() 进行格式化的。进一步地,还需要调用 inline-makeup(内联标记)。


Package cli version 3.6.2

cli_bullets() 中内置定义了许多标记主题类型,只需要使用定义的主题名称:

cli_bullets()的内置标记
cli_bullets(c("noindent"))
noindent
没有任何前缀
cli_bullets(c(" " = "indent"))
  indent
缩进前缀
cli_bullets(c("*" = "bullet"))
• bullet
圆点前缀
cli_bullets(c(">" = "arrow"))
→ arrow
箭头前缀
cli_bullets(c("v" = "success"))
✔ success
对号前缀
cli_bullets(c("x" = "danger"))
✖ danger
错号前缀
cli_bullets(c("!" = "warning"))
! warning
惊叹号前缀
cli_bullets(c("i" = "info"))
ℹ info
信息前缀
cli_bullets() 和 cli_abort()的标记对比
cli_bullets(c("noindent"," " = "indent","*" = "bullet",">" = "arrow","v" = "success","x" = "danger","!" = "warning","i" = "info"
))
cli_abort(c("noindent"," " = "indent","*" = "bullet",">" = "arrow","v" = "success","x" = "danger","!" = "warning","i" = "info"
))

inline-markup 可以让输出的信息更加多元,更加清晰。由 R包cli 输出的文本都支持万能语法插值,详见 glue::glue()cli 支持通过使用类型名称对部分文本内容添加格式。例如:

cli_text("This is {.emph important}.")

上述代码给文本 "important" 添加了一个格式 "emph"。注意本例中大括号内的字符串通常不会是一个可运行的R表达式。如果打算运用插值,可以再使用一个大括号 {} :

adjective <- "great"
cli_text("This is {.emph {adjective}}.")

每个inline类总会在内部创建一个span元素。所以使用主题时,可以通过span.emph 的CSS选择器来改变文本的强调显示格式:

cli_div(theme = list(span.emph = list(color = "red")))
adjective <- "nice and red"
cli_text("This is {.emph {adjective}}.")

cli默认提供的主题

arg用于函数的参数
cls用于S3,S4,R6或其余类的名称
code用于一段代码
dt用于一个命名列表的元素,表格形式
dd用于一个命名列表的描述,表格形式
email用于email地址。如果输出终端支持ANSI超链接(比如RStudio,iTerm2等),那么cli就会生成一个可点击的链接。
emph用于突出显示文本
envvar用于环境变量的名称
field用于通用字段,比如一个命名列表
file用于文件名称。如果输出终端支持ANSI超链接(比如RStudio,iTerm2等),那么cli就会生成一个可点击的链接,点击后就会在RStudio打开该文件或在该文件类型的默认软件中打开。
fn用于函数名称。如果输入的是package::function_name形式,并且输出终端支持ANSI超链接(比如RStudio,iTerm2等),那么cli就会生成一个可点击的链接。
fun与fn相同
help用于函数的帮助页面。如果输出终端支持ANSI超链接至帮助页面(比如RStudio),那么cli就会生成一个可点击的链接。
href用于创建一个超链接,可能带有链接文本。如果输出终端支持ANSI超链接(比如RStudio,iTerm2等),那么cli就会生成一个可点击的链接。
kbd用于键盘键
key与kbd相同
obj_type_friendly用于以可读方式格式化 R 对象的类型,应与 {} 一起使用。
or将分隔折叠矢量最后两个元素的字符串从 "和 "改为 "或"。
path用于文件路径,与file相同。
pkg用于包的名称。
run用于R表达式,如果输出终端支持ANSI超链接至可运行的代码,那么该链接可能可以点击。
str双引号引用字符串
topic用于标题的帮助页面。
type用于以可读方式格式化 R 对象的类型,应与 {} 一起使用。
url用于网址。如果输出终端支持ANSI超链接(比如RStudio,iTerm2等),那么cli就会生成一个可点击的链接。
var用于变量名称。
val用于通用值。
vignette

用于插件。如果输出终端支持ANSI超链接(比如RStudio,iTerm2等),那么cli就会生成一个可点击的链接。

相关文章:

R语言【cli】——通过cli_abort用 cli 格式的内容显示错误、警告或信息,内部调用cli_bullets和inline-makeup

cli_abort(message,...,call .envir,.envir parent.frame(),.frame .envir ) 先从那些不需要下大力气理解的参数入手&#xff1a; 参数【.envir】&#xff1a;进行万能表达式编译的环境。 参数【.frame】&#xff1a;抛出上下文。默认用于参数【.trace_bottom】&#xff…...

cka从入门到放弃

无数次想放弃&#xff0c;最后选择了坚持 监控pod日志 监控名为 foobar 的 Pod 的日志&#xff0c;并过滤出具有 unable-access-website 信息的行&#xff0c;然后将 写入到 /opt/KUTR00101/foobar # 解析 监控pod的日志&#xff0c;使用kubectl logs pod-name kubectl logs…...

通过 jekyll 构建 github pages 博客实战笔记

jekyll 搭建教程 jekyll 搭建教程 Gem 安装 Ruby&#xff0c;请访问 下载地址。 Jekyll Jekyll 是一个简单且具备博客特性的静态网站生成器。 Jekyll 中文文档 极客学院中文文档 使用以下命令安装 Jekyll。 $ gem install jekyll在中国可能需要使用代理软件。然后&#xff…...

【AI美图】第09期效果图,AI人工智能汽车+摩托车系列图集

期待中的未来AI汽车 欢迎来到未来的世界&#xff0c;一个充满创新和无限可能的世界&#xff0c;这里有你从未见过的科技奇迹——AI汽车。 想象一下&#xff0c;你站在十字路口&#xff0c;繁忙的交通信号灯在你的视线中闪烁&#xff0c;汽车如潮水般涌来&#xff0c;但是&…...

网线的制作集线器交换机路由器的配置--含思维导图

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《产品经理如何画泳道图&流程图》 ⛺️ 越努力 &#xff0c;越幸运 一、网线的制作 1、网线的材料有哪些&#xff1f; 网线 网线是一种用于传输数据信号的电缆&#xff0c;广泛应…...

LLM微调(四)| 微调Llama 2实现Text-to-SQL,并使用LlamaIndex在数据库上进行推理

Llama 2是开源LLM发展的一个巨大里程碑。最大模型及其经过微调的变体位居Hugging Face Open LLM排行榜&#xff08;https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard&#xff09;前列。多个基准测试表明&#xff0c;就性能而言&#xff0c;它正在接近GPT-3.5…...

柔性数组(结构体成员)

目录 前言&#xff1a; 柔性数组&#xff1a; 给柔性数组分配空间&#xff1a; 调整柔性数组大小&#xff1a; 柔性数组的好处&#xff1a; 前言&#xff1a; 柔性数组&#xff1f;可能你从未听说&#xff0c;但是确实有这个概念。听名字&#xff0c;好像就是柔软的数…...

C#合并多个Word文档(微软官方免费openxml接口)

g /// <summary>/// 合并多个word文档&#xff08;合并到第一文件&#xff09;/// </summary>/// <param name"as_word_paths">word文档完整路径</param>/// <param name"breakNewPage">true(默认值)&#xff0c;合并下一个…...

MySQL 5.7依赖的软件包和下载地址

​​​​​​​yum install ncurses-devel openssl openssl-devel gcc gcc-c ncurses ncurses-devel bison make -y mysql下载地址 下载地址...

图论 | 网络流的基本概念

文章目录 流网路残留网络增广路径割最大流最小割定理最大流Edmonds-Karp 算法算法步骤程序代码时间复杂度 流网路 流网络&#xff1a; G ( V , E ) G (V, E) G(V,E) 有向图&#xff0c;不考虑反向边s&#xff1a;源点t&#xff1a;汇点 c ( u , v ) c(u, v) c(u,v)&#xff…...

【音视频 | AAC】AAC音频编码详解

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…...

redis基本用法学习(C#调用NRedisStack操作redis)

redis官网文档中推荐C#中使用NRedisStack包连接并操作redis&#xff0c;本文学习C#调用NRedisStack操作redis的基本方式。   新建Winform项目&#xff0c;在Nuget包管理器中搜索并安装NRedisStack包&#xff0c;如下图所示&#xff1a; 主要调用StackExchange.Redis命名空间下…...

[CVPR 2023:3D Gaussian Splatting:实时的神经场渲染]

文章目录 前言小结 原文地址&#xff1a;https://blog.csdn.net/qq_45752541/article/details/132854115 前言 mesh 和点是最常见的3D场景表示&#xff0c;因为它们是显式的&#xff0c;非常适合于快速的基于GPU/CUDA的栅格化。相比之下&#xff0c;最近的神经辐射场&#xf…...

【SpringBoot快速入门】(4)SpringBoot项目案例代码示例

目录 1 创建工程3 配置文件4 静态资源 之前我们已经学习的Spring、SpringMVC、Mabatis、Maven&#xff0c;详细讲解了Spring、SpringMVC、Mabatis整合SSM的方案和案例&#xff0c;上一节我们学习了SpringBoot的开发步骤、工程构建方法以及工程的快速启动&#xff0c;从这一节开…...

Linux服务器 部署飞书信息发送服务

项目介绍&#xff1a; 飞书信息发送服务是指将飞书信息发送服务部署到一个Linux服务器上。飞书是一款企业级的即时通讯和协作工具&#xff0c;支持发送消息给飞书的功能。通过部署飞书信息发送服务&#xff0c;可以方便内网发送信息给外网飞书。 项目代码结构展示&#xff1a; …...

用C#也能做机器学习?

前言✨ 说到机器学习&#xff0c;大家可能都不陌生&#xff0c;但是用C#来做机器学习&#xff0c;可能很多人还第一次听说。其实在C#中基于ML.NET也是可以做机器学习的&#xff0c;这种方式比较适合.NET程序员在项目中集成机器学习模型&#xff0c;不太适合专门学习机器学习&a…...

Python PDF格式转PPT格式

要将PDF文件转换为PPT&#xff0c;我实在python3.9 环境下转成功的&#xff0c;python3.11不行。 需要 pip install PyMuPDF代码说话 # -*- coding: utf-8 -*-""" author: 赫凯 software: PyCharm file: xxx.py time: 2023/12/21 11:20 """im…...

搭建知识付费平台?明理信息科技为你提供全程解决方案

明理信息科技saas知识付费平台 在当今数字化时代&#xff0c;知识付费已经成为一种趋势&#xff0c;越来越多的人愿意为有价值的知识付费。然而&#xff0c;公共知识付费平台虽然内容丰富&#xff0c;但难以满足个人或企业个性化的需求和品牌打造。同时&#xff0c;开发和维护…...

漫谈UNIX、Linux、UNIX-Like

漫谈UNIX、Linux、UNIX-Like 使用了这么多年Redhat、Ubuntu等Linux、Windows、Solaris操作系统&#xff0c;你是否对UNIX、Unix-Like&#xff08;类UNIX&#xff09;还是不太清楚&#xff1f;我以前一直认为Unix-Like就等于Linux。其实&#xff0c;由UNIX派生出来而没有取得UN…...

Netty Review - Netty与Protostuff:打造高效的网络通信

文章目录 概念PrePomServer & ClientProtostuffUtil 解读测试小结 概念 Pre 每日一博 - Protobuf vs. Protostuff&#xff1a;性能、易用性和适用场景分析 Pom <dependency><groupId>com.dyuproject.protostuff</groupId><artifactId>protostuff-…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

Rust 开发环境搭建

环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行&#xff1a; rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ​ 2、Hello World fn main() { println…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...

springboot 日志类切面,接口成功记录日志,失败不记录

springboot 日志类切面&#xff0c;接口成功记录日志&#xff0c;失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...