在Rmarkdown中调用validate包summary方法未返回预期结果,如何解决?
解决Rmarkdown中validate包summary方法输出异常的问题
问题原因
在Rmarkdown代码块中,直接调用summary(chk)时,R未自动触发validate包为validation对象提供的专属summary输出逻辑,反而输出了S4对象的通用描述信息(Length/Class/Mode)。
两种可行解决方案
方案1:将summary结果转换为数据框
通过as.data.frame()把summary输出转换为标准数据框,Rmarkdown会自动渲染成表格形式:
--- title: "My Report" output: html_document: mode: selfcontained theme: null --- ```{r, echo=FALSE} library(validate) rules <- validator( "Species" %in% names(.), is.character(Species), !is.na(Species) ) chk <- confront(dat=iris, x=rules) # 转换为数据框输出 as.data.frame(summary(chk))
### 方案2:显式调用print方法 `validate`的summary结果是`validation_summary`对象,显式调用`print()`可触发其专属格式化输出: ```r --- title: "My Report" output: html_document: mode: selfcontained theme: null --- ```{r, echo=FALSE} library(validate) rules <- validator( "Species" %in% names(.), is.character(Species), !is.na(Species) ) chk <- confront(dat=iris, x=rules) # 显式调用print方法输出格式化结果 print(summary(chk))
内容的提问来源于stack exchange,提问作者Karsten W.
相关产品推荐
相关产品推荐

