2014-07-01 29 views
1

的HTML輸出的位數我有代碼控制在插入符

```{r comment=NA} 
require(caret) 
set.seed(42) 
tc <- trainControl(method="cv") 
m <- train(x=longley[,-ncol(longley)], 
      y=longley[,ncol(longley)], 
      method="pls") 
m 
``` 

產生很好的輸出在控制檯

Partial Least Squares 

16 samples 
6 predictors 

No pre-processing 
Resampling: Bootstrapped (25 reps) 

Summary of sample sizes: 16, 16, 16, 16, 16, 16, ... 

Resampling results across tuning parameters: 

    ncomp RMSE Rsquared RMSE SD Rsquared SD 
    1  1.39 0.836  0.552 0.155  
    2  1.08 0.899  0.387 0.103  
    3  0.592 0.976  0.187 0.0183  

RMSE was used to select the optimal model using the smallest value. 
The final value used for the model was ncomp = 3. 

但HTML生成期間所有數值四捨五入

enter image description here

如何在控制檯中保留與html相同的輸出?

進一步調查和解決方法

我用RStudio。剛剛開始R會話getOption("digits")返回7.但duting html生成數字輸出已舍入。控制檯輸出正常。
如果我在代碼塊中設置options(digits = 7),那麼html和控制檯輸出將變得完全相同並且正確。

我不明白這樣的行爲,但它的工作原理。它是一個錯誤還是一個功能?

+0

您是否在'knitr'文檔的任何位置設置了'options(digits =)'? – MrFlick

+0

不可以。這是完整的代碼,應該是可重現的。你可以在html中重現相同的輸出嗎?如果我添加行選項(數字= 3),它會在html生成過程中返回一個錯誤「無效參數數字」。 – DrDom

回答

1

這是一個問題,我還沒有決定如何處理它呢。很可能我會停止更改knitr(即接受此pull request)的默認數字位數。在此之前,您需要將options(digits = 7)放置在文檔的開頭。

+0

好的,謝謝你的答案和出色的包裝! – DrDom

+0

@DrDom我終於從knitr中移除了'options(digits = 4)';開發版本https://github.com/yihui/knitr將不再重置'digits'選項。 –