0

Rまたは他のソフトウェアからのさまざまな統計テストからの出力から、公開可能な素敵なテーブルを作成できるものを誰かに教えてもらえないでしょうか。

現在、(scipy/numpy を使用するスクリプトからの) .txt 形式の大きな乱雑な出力と、 Rの ks.test からの出力があります。ks.testからの出力について、Rのxtable をいくつか調べました。しかし、ks.test からの出力を ks=ks.test(x,y) などの文字列に割り当ててから xtable を使用しようとすると、次のエラーが発生します。

クラス「htest」のオブジェクトに適用された「xtable」に適用可能なメソッドはありません

表の形式は、.pdf または .eps (埋め込まれていない) であることが望ましいでしょう。

4

5 に答える 5

4

LaTeX テーブルを作成する場合は、xtableパッケージを使用するか、パッケージlatexから使用できHmiscます。LaTeX ファイルを pdf にレンダリングできるため、発行者に受け入れられる可能性があります。

于 2012-10-31T08:34:03.770 に答える
3

表示されるエラーは、からの出力ks.testが表形式の出力でも、xtable理解できる形式でもないためです。出力は次のようになります。

> x <- rnorm(50)
> y <- runif(30)
> # Do x and y come from the same distribution?
> (res <- ks.test(x, y))

    Two-sample Kolmogorov-Smirnov test

data:  x and y 
D = 0.46, p-value = 0.0004387
alternative hypothesis: two-sided

これは実際には表形式ではありません。これを機能させるには、 forクラスks.testのメソッドを作成する必要があります(これは、どのタイプのオブジェクトが返されるかです。他のタイプのオブジェクトには、いくつかのメソッドがすでに存在します。xtable"htest"ks.test

> require(xtable)
Loading required package: xtable
> methods(xtable)
 [1] xtable.anova*           xtable.aov*            
 [3] xtable.aovlist*         xtable.coxph*          
 [5] xtable.data.frame*      xtable.glm*            
 [7] xtable.lm*              xtable.matrix*         
 [9] xtable.prcomp*          xtable.summary.aov*    
[11] xtable.summary.aovlist* xtable.summary.glm*    
[13] xtable.summary.lm*      xtable.summary.prcomp* 
[15] xtable.table*           xtable.ts*             
[17] xtable.zoo*            

   Non-visible functions are asterisked

クラス"htest"はかなり一般的です(Rの古典的なテストのすべてではなく、ほとんどの場合に使用されます)。したがって、xtable.htestこのような仮説検定の結果が表形式の出力に適さないということはありません。たとえば、KSテスト出力で関心のある2つの数値。

コメントで述べたように、テキストの検定統計量Dp-valueインラインを引用します。

複数のテストがあり、それらを要約する場合は、複数のks.test実行からの出力をデータフレームに収集し、xtableそのデータフレームで使用します(そのためのメソッドがあるため、機能します)。いくつかのksテストをテーブル(データフレーム)に結合するには、次のようなことを行うことができます。

df.res <- data.frame(D = c(res$statistic, res$statistic),
                     `p value` = c(res$p.value, res$p.value))
xtable(df.res)

これは次のようになります。

> df.res <- data.frame(D = c(res$statistic, res$statistic),
+                      `p value` = c(res$p.value, res$p.value))
> xtable(df.res)
% latex table generated in R 2.15.2 by xtable 1.7-0 package
% Wed Oct 31 09:19:16 2012
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrr}
  \hline
 & D & p.value \\ 
  \hline
1 & 0.46 & 0.00 \\ 
  2 & 0.46 & 0.00 \\ 
   \hline
\end{tabular}
\end{center}
\end{table}

次に、データフレームの名前などをフォーマットしてLaTeX出力でより良い出力を得る方法の詳細については、パッケージのxtableprint.xtableのマニュアルを参照してください。

于 2012-10-31T09:04:28.057 に答える
3

テーブルを LaTeX または HTML 形式で印刷したい場合は、xtableパッケージを試すことができます。例えば:

my.R.table <- matrix(runif(21), ncol=3)
my.x.table <- xtable(my.R.table,
                     caption = c("The long caption for this",
                                 "The short caption"),
                     label = c("my.latex.label"),
                     align = c("l", "l", "r", "c"),
                     digits = 3)
print(my.x.table, caption.placement = "top",
      include.rownames = FALSE, type="html")

統計モデルには、 というパッケージも存在しますstargazer。私はこれを試していません。

于 2012-10-31T08:38:57.573 に答える
3

panderパッケージは、出力をフォーマットする別の方法と考えることができます。作成するファイルの最終的な種類についていくつかのオプションがあり、htests のメソッドがあります。

しかし、公開の場合、デフォルトの出力と同じフォーマットを使用したくない場合がよくあります。htest オブジェクトから重要な部分を抽出して、自分でフォーマットすることをお勧めします。sweaveやのようなツールをknitr使用して、必要な形式を作成し、重要な情報を形式に挿入できます。

于 2012-10-31T15:00:49.923 に答える