6

私は現在、母集団データのデータ分析を行っているため、パラメーター係数のテーブルで標準誤差を報告しても、統計的に意味がありません。私はかなりの検索を行いましたが、xtable出力をカスタマイズして削除する方法が見つかりません。誰かが私を正しい方向に向けることができますか?

どうもありがとう、私はこれを軽く投稿しませんでした。明らかなことなら、時間を無駄にしてしまったことをお詫びします!

4

3 に答える 3

5

だから私の(他の)長い間答えた後...これもうまくいく:

xtable(summary(model1)$coefficients[,c(1,3,4)])

またはより一般的に:

sm <- summary(SomeModel)
SE.indx <- which(colnames(sm$coefficients) == "Std. Error")   # find which column is Std. Error (usually 2nd)
sm$coefficients <- sm$coefficients[, -SE.indx]  # Remove it
xtable(sm$coefficients)   # call xtable on just the coefficients table

結果:

% latex table generated in R 2.15.1 by xtable 1.7-0 package
% Sun Dec  9 00:01:46 2012
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrrr}
  \hline
 & Estimate & t value & Pr($>$$|$t$|$) \\ 
  \hline
(Intercept) & 29.80 & 30.70 & 0.00 \\ 
  crim & -0.31 & -6.91 & 0.00 \\ 
  age & -0.09 & -6.50 & 0.00 \\ 
   \hline
\end{tabular}
\end{center}
\end{table}
于 2012-12-09T05:02:37.363 に答える
2

help(lm) の最初の例を使用します。

 xtable(as.matrix(coef(lm.D9)))

% latex table generated in R 2.15.2 by xtable 1.7-0 package
% Sat Dec  8 19:53:09 2012
\begin{table}[ht]
\begin{center}
\begin{tabular}{rr}
  \hline
 & x \\ 
  \hline
(Intercept) & 5.03 \\ 
  groupTrt & -0.37 \\ 
   \hline
\end{tabular}
\end{center}
\end{table}

これが単なるサンプルではなく母集団の説明である場合、std erros を使用しないことに同意しました。ただし、その理由から、p 値または t 統計量を残したくはありません。そのため、係数のみを含めました。要約係数行列から標準誤差列のみを削除するには:

xtable( coef(summary(lm.D9))[,-2] )

% latex table generated in R 2.15.2 by xtable 1.7-0 package
% Sat Dec  8 21:02:17 2012
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrrr}
  \hline
 & Estimate & t value & Pr($>$$|$t$|$) \\ 
  \hline
(Intercept) & 5.03 & 22.85 & 0.00 \\ 
  groupTrt & -0.37 & -1.19 & 0.25 \\ 
   \hline
\end{tabular}
\end{center}
\end{table}
于 2012-12-09T03:55:07.660 に答える
0

見ると、削除したい値があることがstr(summary(Model1))わかります。$coefficientsStd. Error

lesserSummary <- function(x) {
## returns same as summary(x), but with "Std. Error" remove from coefficients. 
##    and class of object is "modifiedSummary"

  # grab the summary
  sm <- summary(x)

  # find which column is std error
  SE.indx <- which(colnames(sm$coefficients) == "Std. Error")

  # remove it 
  sm$coefficients <- sm$coefficients[, -SE.indx]

  # give it some class
  class(sm) <- "modifiedSummary"

  # return it
  sm
}


xtable.modifiedSummary <- 
function (x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, ...)  {
# x is a modifiedSummary object
# This function is a modification of xtable:::xtable.summary.lm
# Key Difference is simply the number of columns that x$coef is expected to have
#   (Here 3.  Originally 4)  

    x <- data.frame(x$coef, check.names = FALSE)
    class(x) <- c("xtable", "data.frame")
    caption(x) <- caption
    label(x) <- label
    align(x) <- switch(1 + is.null(align), align, c("r", "r", "r", "r"))
    digits(x) <- switch(1 + is.null(digits), digits, c(0, 4, 2, 4))
    display(x) <- switch(1 + is.null(display), display, c("s", "f", "f", "f"))
    return(x)
}


xtable_mod <- function(x) {
  # Wrapper function to xtable.modified summary, calling first lesserSummary on x
  xtable(lesserSummary(x))
}    

例:

xtable_mod(model1)

% latex table generated in R 2.15.1 by xtable 1.7-0 package
% Sat Dec  8 23:44:54 2012
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrrr}
  \hline
 & Estimate & t value & Pr($>$$|$t$|$) \\ 
  \hline
(Intercept) & 29.8007 & 30.70 & 0.0000 \\ 
  crim & -0.3118 & -6.91 & 0.0000 \\ 
  age & -0.0896 & -6.50 & 0.0000 \\ 
   \hline
\end{tabular}
\end{center}
\end{table}




以下は、上記の結論に至るまでの手順です。

xtable の呼び出しを変更できる可能性がありますが、最初に少し従う必要があります。xtable のソースを調べることから始めます。

xtable
# function (x, caption = NULL, label = NULL, align = NULL, digits = NULL, 
#     display = NULL, ...) 
# {
#     UseMethod("xtable")
# }
# <environment: namespace:xtable>

への呼び出しがあるだけであることがわかりますUseMethod()。それでは、どのメソッドが利用可能か見てみましょう:

methods(xtable)
#  [1] xtable.anova*           xtable.aov*             xtable.aovlist*        
#  [4] xtable.coxph*           xtable.data.frame*      xtable.glm*            
#  [7] xtable.lm*              xtable.matrix*          xtable.prcomp*         
# [10] xtable.summary.aov*     xtable.summary.aovlist* xtable.summary.glm*    
# [13] xtable.summary.lm*      xtable.summary.prcomp*  xtable.table*          
# [16] xtable.ts*              xtable.zoo*      

いくつかあります。アスタリスク*が付いているものは見えないことに注意してください。

呼び出されるメソッドは、呼び出しているオブジェクトのクラスによって決まりますxtable

出力が次のようになるとしましょうModel1 。そのクラスを見てみましょう。

class(Model1)
# [1] "lm"

したがって、見たいソースはxtable.lm.

xtable.lm
# Error: object 'xtable.lm' not found

エラー?そうです、見えないのです。そのため、パッケージ名にコロンを 3 つ付けて使用します。注: ヘルプ ファイルの通知を必ずお読みください ?":::"

xtable:::xtable.lm
# function (x, caption = NULL, label = NULL, align = NULL, digits = NULL, 
# display = NULL, ...) 
# {
#     return(xtable.summary.lm(summary(x), caption = caption, label = label, 
#         align = align, digits = digits, display = display))
# }
# <environment: namespace:xtable>   

最初の引数として aをxtable.lm 呼び出して渡すことに注意してください。ここで、 x はモデルです。xtable.summary.lmsummary(x)

したがって、調査する場所は 2 つ summaryあります。xtable.summary.lm

于 2012-12-09T03:30:36.540 に答える