1

ヘルプファイルを読んだことがありますがformat.pval、有効数字に関する限り、これが適切な形式で数値を出力するための適切なツールであるかどうか疑問に思っていました。

この投稿では:

R/科学的記数法で\Sexpr{}を使用してフォーマット番号をスウィーブします

解決策が提案されましたが、これを行うための関数format.pvalがすでにここにあるのではないかと思います。

\Sexpr{format.pval(a value/variable here)}そして、有効桁数のオプションと一緒にSweaveで使用できると思います。

どうもありがとう...

4

4 に答える 4

3

私はその機能をknitrパッケージに含めました。これにより、knitr非常にスマートになりました。数値が生成され、大きすぎるか小さすぎる場合に自動的に使用されます(TeXの代わりにHTMLを出力する場合は、自動的に使用されます$a \times 10^b$)。おそらくSweaveから今への切り替えを開始できます:http://yihui.github.com/knitr/\Sexpr{}a &times; 10<sup>b</sup>knitr

于 2011-12-09T18:29:39.600 に答える
1

format.pvalたとえば、の出力を表示するときに、印刷されたp値をフォーマットするように特別に設計されていますlm

の主力format.pvalformat、より一般的な目的です。したがって、おそらくformatまたはそのいとこを使用する必要があります-prettyNum代わりformatCに。

脚注:日付の書式設定(POSIXctまたはPOSIXlt)には、日付書式設定機能が必要ですstrptime

于 2011-12-09T08:51:42.027 に答える
1

format.pvalおそらく使われるべきではないと思います。先頭の0も精度を反映しているため、私たち(統計家)は通常、$p$値に従来の科学的記数法を使用しません。したがって、合計桁数を使用します。これは、ほとんどの学術出版物に記載されています。

たとえば、3桁を報告するということは、「トレース」値が「<0.001」で報告されることを意味します。これは、提供される最高の精度が1000位までであるためです。とを指定するdigits=3eps=0.001、0.0040523のp値は0.00405として報告されます。これは、0.004が必要だった場合の精度が10万分の1であることを示しています。

私は次の小さなラッパーを使用します:

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
}
于 2017-06-14T20:43:30.893 に答える
0

控えめに言うと、0.32312のp値は0.323ではなく0.324に丸める必要があります。これが私の解決策です:

format.p = function(p, precision=0.001) {
  digits = -log(precision, base=10)
  p = formatC(ceiling(p/precision)*precision,format = 'f', digits=digits)
  p[p == formatC(0, format='f', digits=digits)] = paste0('<', precision)
  p
}
于 2019-01-11T16:24:10.340 に答える