首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pander泛型函数忽略参数

pander泛型函数忽略参数
EN

Stack Overflow用户
提问于 2013-06-10 08:49:32
回答 1查看 139关注 0票数 0

如果我没记错的话,有两种方法可以用pander包创建标记表:使用pandoc.table()函数或泛型函数pander()。但是,对于pander()函数,似乎不能使用pandoc.table()中的参数。

例如:

代码语言:javascript
复制
library(pander)
data(iris)
pandoc.table(summary(iris), split.table="Inf")
pander(summary(iris), split.table="Inf")

使用pandoc.table时,表不会因为参数split.table而被拆分(这是预期的行为)。但是在pander中,这个参数被忽略了。

我在函数的代码中看到...参数存在于pander.data.frame中,但未在其中重新指定。:

代码语言:javascript
复制
> pander:::pander.data.frame
function (x, caption = attr(x, "caption"), ...)
{
    if (is.null(caption) & !is.null(storage$caption))
        caption <- get.caption()
    pandoc.table(x, caption = caption)
}

为什么不重用..。参数来允许将参数从pander传递到pandoc.table (如下所示)?当然,这可能有一个很好的原因……

代码语言:javascript
复制
function (x, caption = attr(x, "caption"), ...)
{
    if (is.null(caption) & !is.null(storage$caption))
        caption <- get.caption()
    pandoc.table(x, caption = caption,...)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-10 16:43:40

虽然通过pander方法处理pandoc.table参数是一个合理的想法(我肯定会在下一个版本中允许这种解决方案,感谢您的问题!),但使用通用的pander options也可以在全局范围内解决这个问题。例如:

代码语言:javascript
复制
> library(pander)
> data(iris)
> panderOptions('table.split.table', 'Inf')
> pander(head(iris))

-------------------------------------------------------------------
 Sepal.Length   Sepal.Width   Petal.Length   Petal.Width   Species 
-------------- ------------- -------------- ------------- ---------
     5.1            3.5           1.4            0.2       setosa  

     4.9             3            1.4            0.2       setosa  

     4.7            3.2           1.3            0.2       setosa  

     4.6            3.1           1.5            0.2       setosa  

      5             3.6           1.4            0.2       setosa  

     5.4            3.9           1.7            0.4       setosa  
-------------------------------------------------------------------

更新 2013/06/11:recent commit解决了此问题,现在您可以通过pander S3方法将这些额外参数传递给pandoc.table

代码语言:javascript
复制
> pander(summary(iris), split.table="Inf")

------------------------------------------------------------------------------
&nbsp;  Sepal.Length   Sepal.Width   Petal.Length   Petal.Width     Species   
------ -------------- ------------- -------------- ------------- -------------
 ****   Min.  :4.300  Min.  :2.000   Min.  :1.000  Min.  :0.100   setosa :50  

 ****  1st Qu.:5.100  1st Qu.:2.800 1st Qu.:1.600  1st Qu.:0.300 versicolor:50

 ****  Median :5.800  Median :3.000 Median :4.350  Median :1.300 virginica :50

 ****   Mean :5.843    Mean :3.057   Mean :3.758    Mean :1.199               

 ****  3rd Qu.:6.400  3rd Qu.:3.300 3rd Qu.:5.100  3rd Qu.:1.800              

 ****   Max.  :7.900  Max.  :4.400   Max.  :6.900  Max.  :2.500               
------------------------------------------------------------------------------
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17015616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档