2011-12-09 330 views
1

我已閱讀format.pval的幫助文件,並且想知道這是否是一種正確的工具,只要有效數字與正確的格式輸出數字R中使用format.pval(並且在Sweave中使用 Sexpr)

在這篇文章:

R/Sweave formatting numbers with \Sexpr{} in scientific notation

的解決方案提出了,我不知道如果函數format.pval已經在這裏做到這一點。

我想我們可以在Sweave中使用它作爲\Sexpr{format.pval(a value/variable here)}以及有效位數的選項。

非常感謝...

+1

'format.pval'使用'format'這是目的較爲一般。所以你應該使用'format','prettyNum'或'formatC'來代替。 – Andrie

+0

@ Andrie謝謝。你可以考慮在這個解決方案中轉換你的評論嗎? 1投票。 – yCalleecharan

回答

1

format.pval是專門設計的觀看的lm時輸出格式化印刷p.values,例如。

format.pval的主力是format這是更通用的。所以你應該使用format或其堂兄弟 - prettyNumformatC

腳註:格式化日期(POSIXct或POSIXlt)你需要strptime

3

我已經包含在knitr包的功能,這使得knitr現在真的很聰明的日期格式的功能 - 它會自動如果你的\Sexpr{}使用$a \times 10^b$產生一個數字,它要麼太大,要麼太小(如果你輸出HTML而不是TeX,它會自動使用a &times; 10<sup>b</sup>)。你大概可以開始從Sweave切換到knitr現在:http://yihui.github.com/knitr/

+0

謝謝。 Knitr穩定嗎?我知道它比Sweave要新近1票。 – yCalleecharan

+0

1投票爲新的針織者。 – yCalleecharan

+0

第一個版本很快就會發布到CRAN,可以被認爲是穩定的。 –

1

我認爲format.pval可能不應該被使用。我們(統計學家)通常不會對$ p $ -values使用傳統的科學記數法,因爲前導0也是精確度的反映。因此我們使用總數字。你會在大多數學術刊物中找到它。

例如,報告三位數字意味着「痕量」值以「< 0.001」報告,因爲在所提供的最大精度是第幾千位。如果我指定digits=3eps=0.001,則報告0.0040523的p值爲0.00405,這表明當需要0.004時,我的精度爲十萬分之一。

我用下面的小包裝:

format.p <- function(p, precision=0.001) { 
    digits <- -log(precision, base=10) 
    p <- formatC(p, format='f', digits=digits) 
    p[p == formatC(0, format='f', digits=digits)] <- paste0('<', precision) 
    p 
}