12

xtableコマンドからを作成してstr(x)、使用する変数から概要を取得することは可能かどうか疑問に思っています。これは、誰かにデータセットを紹介するのに便利な機能ですが、自分で作成するのは面倒です。だから私が試したのは、xtableこのようなものを作ることです:

str(cars)
require(xtable)
xtable(str(cars))

車のデータセットは R から提供されます。残念ながらxtable、 の Latexcode は提供されませんstr()。ここでRを裏切ることは可能ですか?xtable理解できる主なコマンドは次のとおりです。

methods(xtable)

何か案は?

4

4 に答える 4

17

注目すべきもう 1 つのパッケージはreporttools. パッケージのtipsデータセットでの使用法を示す短いコードを次に示します。reshape両方の要約ステートメントは、ドキュメントにコピーして貼り付けたり、織りに使用したりできるラテックス コードを生成します。

library(reporttools)
data(tips, package = 'reshape')

# summarize numeric variables
tableContinuous(tips[,sapply(tips, is.numeric)])

# summarize non-numeric variables
tableNominal(tips[,!sapply(tips, is.numeric)])

編集。本当に を使用する必要がある場合はstr、次の方法があります。

str_cars = capture.output(str(cars))
xtable(data.frame(str_cars))

レポートツールからの出力:ここに画像の説明を入力ここに画像の説明を入力

于 2011-05-05T17:45:11.460 に答える
14

Hmiscパッケージがどのように機能するかを調査するのに時間を費やす気がある場合は、そのようなタスクを容易にする多くのユーティリティがあることにすぐに気付くでしょう。特に、contents()メソッドは、レポートによって data.frame の記述を容易にします。

名前、ラベル (存在する場合)、単位 (存在する場合)、因子水準の数 (存在する場合)、因子水準、クラス、ストレージ モード、および NA の数

attributesラベルと単位は、各変数に(内部的に として) バインドできます。関連するprinthtmlおよびlatex表示とエクスポートのメソッドがあります。

もう 1 つの優れた機能は、describe()以下に示す関数です。

> describe(cars)
cars 

 2  Variables      50  Observations
--------------------------------------------------------------------------------
speed 
      n missing  unique    Mean     .05     .10     .25     .50     .75     .90 
     50       0      19    15.4     7.0     8.9    12.0    15.0    19.0    23.1 
    .95 
   24.0 

          4 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25
Frequency 2 2 1 1  3  2  4  4  4  3  2  3  4  3  5  1  1  4  1
%         4 4 2 2  6  4  8  8  8  6  4  6  8  6 10  2  2  8  2
--------------------------------------------------------------------------------
dist 
      n missing  unique    Mean     .05     .10     .25     .50     .75     .90 
     50       0      35   42.98   10.00   15.80   26.00   36.00   56.00   80.40 
    .95 
  88.85 

lowest :   2   4  10  14  16, highest:  84  85  92  93 120 
--------------------------------------------------------------------------------
于 2011-05-05T16:01:51.107 に答える
10

オブジェクトと一緒に使用するとxtable最良の結果が得られるため、次のようなものをお勧めします。data.framesmatrix

library(xtable)
library(plyr)
dtf <- sapply(mtcars, each(min, max, mean, sd, var, median, IQR))
xtable(dtf)
% latex table generated in R 2.12.2 by xtable 1.5-6 package                                                                  
% Thu May  5 19:40:08 2011                                                                                                   
\begin{table}[ht]                                                                                                            
\begin{center}                                                                                                               
\begin{tabular}{rrrrrrrrrrrr}                                                                                                
  \hline                                                                                                                     
 & mpg & cyl & disp & hp & drat & wt & qsec & vs & am & gear & carb \\                                                       
  \hline                                                                                                                     
min & 10.40 & 4.00 & 71.10 & 52.00 & 2.76 & 1.51 & 14.50 & 0.00 & 0.00 & 3.00 & 1.00 \\                                      
  max & 33.90 & 8.00 & 472.00 & 335.00 & 4.93 & 5.42 & 22.90 & 1.00 & 1.00 & 5.00 & 8.00 \\                                  
  mean & 20.09 & 6.19 & 230.72 & 146.69 & 3.60 & 3.22 & 17.85 & 0.44 & 0.41 & 3.69 & 2.81 \\                                 
  sd & 6.03 & 1.79 & 123.94 & 68.56 & 0.53 & 0.98 & 1.79 & 0.50 & 0.50 & 0.74 & 1.62 \\                                      
  var & 36.32 & 3.19 & 15360.80 & 4700.87 & 0.29 & 0.96 & 3.19 & 0.25 & 0.25 & 0.54 & 2.61 \\                                
  median & 19.20 & 6.00 & 196.30 & 123.00 & 3.70 & 3.33 & 17.71 & 0.00 & 0.00 & 4.00 & 2.00 \\                               
  IQR & 7.38 & 4.00 & 205.18 & 83.50 & 0.84 & 1.03 & 2.01 & 1.00 & 1.00 & 1.00 & 2.00 \\                                     
   \hline                                                                                                                    
\end{tabular}                                                                                                                
\end{center}                                                                                                                 
\end{table} 

長い出力で申し訳ありません。ここでPDF を取得できます。eachカスタム集計を非常に簡単に定義できるため、非常に用途の広い関数です。また、str出力を stdout に返すため、特定の変数の概要を取得することはできません。この場合、sapplyは結果を単純化し、matrix代わりに を生成しますdata.frame。でもそんなに問題ないですよね?

于 2011-05-05T17:49:41.343 に答える