【发布时间】:2015-12-28 11:52:05
【问题描述】:
我正在使用summary() 在knitr 文档中生成简单的日期变量摘要,并希望将结果格式化。
summary(some_date)
产生我想要的结果(值显示为日期),但格式不正确。所以,我尝试了:
pander::pander(summary(some_date))
这会产生格式良好的结果,但值显示为整数而不是日期。 (这适用于 Date、POSIXct 和 POSIXlt 日期)。
有什么方法可以很好地格式化 knitr 文档中日期的 summary() 的结果吗?也许除了pander 之外还有一些更适合这个任务的包。
以下示例:
summary(some_date)
## Min. 1st Qu. Median Mean 3rd Qu.
## "2014-05-01" "2015-02-15" "2015-06-17" "2015-05-05" "2015-09-08"
## Max.
## "2015-11-21"
pander::pander(summary(some_date))
Min. 1st Qu. Median Mean 3rd Qu. Max.
16191 16481 16603 16560 16686 16760
sessionInfo()
## R version 3.2.3 (2015-12-10)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 14.04.3 LTS
##
## locale:
## [1] LC_CTYPE=en_AU.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_AU.UTF-8 LC_COLLATE=en_AU.UTF-8
## [5] LC_MONETARY=en_AU.UTF-8 LC_MESSAGES=en_AU.UTF-8
## [7] LC_PAPER=en_AU.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] pander_0.6.0 ggplot2_2.0.0 daff_0.1.4 magrittr_1.5 dplyr_0.4.3
## [6] readr_0.2.2
##
## loaded via a namespace (and not attached):
## [1] Rcpp_0.12.2 knitr_1.11 munsell_0.4.2 lattice_0.20-33
## [5] colorspace_1.2-6 R6_2.1.1 plyr_1.8.3 stringr_1.0.0
## [9] tools_3.2.3 parallel_3.2.3 grid_3.2.3 packrat_0.4.6-4
## [13] nlme_3.1-122 gtable_0.1.2 mgcv_1.8-7 DBI_0.3.1
## [17] htmltools_0.2.6 lazyeval_0.1.10 yaml_2.1.13 assertthat_0.1
## [21] digest_0.6.8 Matrix_1.2-3 formatR_1.2.1 curl_0.9.4
## [25] evaluate_0.8 rmarkdown_0.9 labeling_0.3 V8_0.9
## [29] stringi_1.0-1 scales_0.3.0 jsonlite_0.9.19
【问题讨论】:
-
pander::pander(summary(Sys.Date() + sample(-50:50, 100, TRUE)))给了我格式很好的日期,而不是整数....您能否提供一个重现您的问题的示例,或者可能包含一些显示您从“pander”获得的输出? -
请使用相关会话信息或您正在使用的相关软件包版本的详细信息更新您的问题。
-
Anando,我刚刚尝试了您的代码 sn-p,得到的是整数而不是日期。我正在使用 pander 0.6.0、knitr 1.11、rmarkdown 0.9 和 R 3.2.3。这是我第一次使用pander,所以很可能有一些我没有正确设置的全局选项。
-
这似乎是最近才推出的。当我发布第一条评论时,“迎合”我的另一个系统的版本有点过时了。临时解决方案:使用
as.character:pander(as.character(summary(Sys.Date() + sample(-50:50, 100, TRUE)))).... -
耶!这对我有用:
pander(as.character(summary(Sys.Date() + sample(-50:50, 100, TRUE))))- 这是需要通知pander维护者的事情吗?