我正在尝试开发一个可重复的研究报告,其中包括输入数据集的可变分布的打印输出。
我对下面的小例子中的summary()结果感到困惑。 当我直接将代码评估到控制台时,我得到了' b'是2012年的预期,但是当我用knit2html()运行它时,它显示为2010年。
dat <- data.frame(a = letters, b = rep(2012, length(letters)))
str(dat)
## 'data.frame': 26 obs. of 2 variables:
## $ a: Factor w/ 26 levels "a","b","c","d",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ b: num 2012 2012 2012 2012 2012 ...
dd <- lapply(dat, summary)
dd
## $a
## a b c d e f g h i j k l m n o p q r s t u v w x y z
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##
## $b
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2010 2010 2010 2010 2010 2010
sessionInfo()
## R version 3.1.0 (2014-04-10)
## Platform: x86_64-pc-linux-gnu (64-bit)
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=C
## [4] LC_COLLATE=C LC_MONETARY=C LC_MESSAGES=C
## [7] LC_PAPER=C LC_NAME=C LC_ADDRESS=C
## [10] LC_TELEPHONE=C LC_MEASUREMENT=C LC_IDENTIFICATION=C
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] knitr_1.5
##
## loaded via a namespace (and not attached):
## [1] evaluate_0.5.1 formatR_0.9 stringr_0.6.2 tools_3.1.0
答案 0 :(得分:1)
在knitr代码块中,options("digits")
默认为4. summary
函数的digits
参数默认为max(3, getOption("digits")-3)
(参见?summary
)。这导致summary
将2012年的三位数转为三位数,从而导致2010年。
您可以在代码块中增加digits
选项:
options(digits=7)
或者在您对digits
的调用中指定summary
参数:
dd <- lapply(dat, summary, digits=4)